DBA Data[Home] [Help]

PACKAGE BODY: APPS.INV_PP_DEBUG

Source


1 PACKAGE BODY inv_pp_debug AS
2 /* $Header: INVPPDGB.pls 120.1 2005/06/07 18:40:08 appldev  $ */
3 g_debug_mode       NUMBER  	    := g_debug_mode_no;
4 g_last_dynamic_sql long    	    := NULL ;
5 g_last_error_pos   NUMBER           := -1;
6 g_last_error_msg   long             := NULL;
7 g_pipename         VARCHAR2(1000)   := NULL;
8 g_line_feed        VARCHAR2(1) :='
9 ';
10 PROCEDURE set_debug_mode(p_mode IN NUMBER) IS
11 BEGIN
12    IF p_mode IN (g_debug_mode_yes, g_debug_mode_no) THEN
13       g_debug_mode := p_mode;
14    END IF;
15 END set_debug_mode;
16 --
17 FUNCTION IS_debug_mode RETURN BOOLEAN IS
18 BEGIN
19    RETURN (g_debug_mode = g_debug_mode_yes);
20 END is_debug_mode;
21 --
22 PROCEDURE set_last_dynamic_sql(p_sql IN long) IS
23 BEGIN
24    g_last_dynamic_sql := p_sql;
25 END set_last_dynamic_sql;
26 --
27 FUNCTION  get_last_dynamic_sql RETURN long IS
28 BEGIN
29    RETURN g_last_dynamic_sql;
30 END get_last_dynamic_sql;
31 --
32 PROCEDURE set_last_error_message(p_error_msg IN long) IS
33 BEGIN
34    g_last_error_msg := p_error_msg;
35 END set_last_error_message;
36 --
37 FUNCTION  get_last_error_message RETURN long IS
38 BEGIN
39    RETURN g_last_error_msg;
40 END get_last_error_message;
41 --
42 PROCEDURE set_last_error_position(p_error_pos IN NUMBER) IS
43 BEGIN
44    g_last_error_pos := p_error_pos;
45 END set_last_error_position;
46 --
47 FUNCTION  get_last_error_position RETURN NUMBER IS
48 BEGIN
49    RETURN g_last_error_pos;
50 END get_last_error_position;
51 --
52 PROCEDURE set_debug_pipe_name(p_pipename IN VARCHAR2) IS
53 BEGIN
54    g_pipename := p_pipename;
55 END set_debug_pipe_name;
56 --
57 PROCEDURE send_message_to_pipe(p_message IN VARCHAR2) IS
58    l_rval NUMBER;
59 BEGIN
60    IF g_debug_mode <> g_debug_mode_yes OR
61      g_pipename IS NULL THEN
62       RETURN;
63    END IF;
64    -- bug # 3133781
65    /*
66    dbms_pipe.pack_message(p_message||g_line_feed);
67    l_rval := dbms_pipe.send_message(g_pipename, 120, 10000000);
68    dbms_pipe.pack_message('.'); -- message ending symbol
69    l_rval := dbms_pipe.send_message(g_pipename, 120, 10000000);
70   */
71    RETURN;
72 END send_message_to_pipe;
73 --
74 PROCEDURE send_long_to_pipe(p_message IN long ) IS
75     p_n NUMBER;
76     p_v VARCHAR2(1);
77     l_buf VARCHAR2(4096);
78     l_line_size INTEGER;
79 BEGIN
80    IF g_debug_mode <> g_debug_mode_yes OR
81      g_pipename IS NULL THEN
82       RETURN;
83    END IF;
84    l_line_size := 0;
85    FOR p_n IN 1..LENGTH(p_message) LOOP
86       p_v := Substr(p_message,p_n,1);
87       l_line_size := l_line_size +1;
88       if (p_v = g_line_feed OR l_line_size > 250)
89 	AND l_buf IS NOT NULL THEN
90 	send_message_to_pipe(l_buf);
91 	l_buf := NULL;
92 	l_line_size := 0;
93      ELSE
94 	IF l_buf IS NULL THEN
95          l_buf := p_v;
96         ELSE
97          l_buf := l_buf || p_v;
98         END IF;
99       END IF;
100    END LOOP;
101    IF l_buf IS NOT NULL THEN
102       send_message_to_pipe(l_buf);
103    END IF;
104 END send_long_to_pipe;
105 PROCEDURE send_last_dynamic_sql IS
106 BEGIN
107   IF g_debug_mode <> g_debug_mode_yes OR
108     g_pipename IS NULL THEN
109       RETURN;
110   END IF;
111   send_message_to_pipe('last dynamic sql is ');
112   send_long_to_pipe(g_last_dynamic_sql);
113 END send_last_dynamic_sql;
114 PROCEDURE send_last_error_position IS
115 BEGIN
116   IF g_debug_mode <> g_debug_mode_yes OR
117     g_pipename IS NULL THEN
118      RETURN;
119   END IF;
120   send_message_to_pipe('last error position is '||g_last_error_pos);
121 END send_last_error_position;
122 PROCEDURE send_last_error_message IS
123 BEGIN
124   IF g_debug_mode <> g_debug_mode_yes OR
125     g_pipename IS NULL THEN
126      RETURN;
127   END IF;
128   send_message_to_pipe('last error message is '||g_last_error_msg);
129 END send_last_error_message;
130 --
131 FUNCTION receive
132   (  p_pipename      IN  VARCHAR2
133    , x_message       OUT NOCOPY VARCHAR2
134    ) RETURN NUMBER IS
135       l_rval NUMBER := NULL;
136 BEGIN
137    l_rval := dbms_pipe.receive_message(p_pipename, 30);
138    IF l_rval = 0 THEN
139       dbms_pipe.unpack_message(x_message);
140     ELSE
141       x_message := NULL;
142    END IF;
143    --dbms_output.put_line('l_rval '|| l_rval);
144    RETURN l_rval;
145 END receive;
146 END inv_pp_debug;