1: PACKAGE BODY fnd_dsql AS
2: /* $Header: AFUTSQLB.pls 120.1.12020000.2 2012/07/31 19:58:35 hgeorgi ship $ */
3:
4:
5: TYPE VARCHAR2_TBL_TYPE IS VARRAY(512) OF VARCHAR2(2000);
19: g_bind_dtbl DATE_TBL_TYPE; -- date type bind values
20: g_bind_ntbl NUMBER_TBL_TYPE; -- number type bind values
21:
22: chr_newline VARCHAR2(8);
23: g_package_name VARCHAR2(30) := 'fnd_dsql';
24:
25: -- ======================================================================
26: -- Utility Functions
27: -- ======================================================================
39: -- ======================================================================
40: PROCEDURE init
41: IS
42: BEGIN
43: fnd_dsql.g_dsql_text := NULL;
44: fnd_dsql.g_cursor_id := NULL;
45: fnd_dsql.g_nbinds := 0;
46: EXCEPTION
47: WHEN OTHERS THEN
40: PROCEDURE init
41: IS
42: BEGIN
43: fnd_dsql.g_dsql_text := NULL;
44: fnd_dsql.g_cursor_id := NULL;
45: fnd_dsql.g_nbinds := 0;
46: EXCEPTION
47: WHEN OTHERS THEN
48: report_error(g_package_name || '.init' , Sqlerrm);
41: IS
42: BEGIN
43: fnd_dsql.g_dsql_text := NULL;
44: fnd_dsql.g_cursor_id := NULL;
45: fnd_dsql.g_nbinds := 0;
46: EXCEPTION
47: WHEN OTHERS THEN
48: report_error(g_package_name || '.init' , Sqlerrm);
49: RAISE;
51:
52:
53: PROCEDURE add_text(p_text IN VARCHAR2) IS
54: BEGIN
55: fnd_dsql.g_dsql_text := fnd_dsql.g_dsql_text || p_text;
56: EXCEPTION
57: WHEN OTHERS THEN
58: report_error(g_package_name || '.add_text()', Sqlerrm);
59: RAISE;
62:
63: PROCEDURE add_bind(p_value IN VARCHAR2)
64: IS
65: BEGIN
66: if (fnd_dsql.g_nbinds = g_maximum_varray_size) then
67: raise_application_error(-20001, 'Bind arrays are full. ' ||
68: 'Maximum Number of Binds: ' || g_maximum_varray_size);
69: end if;
70: fnd_dsql.g_nbinds := fnd_dsql.g_nbinds + 1;
66: if (fnd_dsql.g_nbinds = g_maximum_varray_size) then
67: raise_application_error(-20001, 'Bind arrays are full. ' ||
68: 'Maximum Number of Binds: ' || g_maximum_varray_size);
69: end if;
70: fnd_dsql.g_nbinds := fnd_dsql.g_nbinds + 1;
71:
72: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'C';
73: fnd_dsql.g_bind_vtbl(fnd_dsql.g_nbinds) := p_value;
74:
68: 'Maximum Number of Binds: ' || g_maximum_varray_size);
69: end if;
70: fnd_dsql.g_nbinds := fnd_dsql.g_nbinds + 1;
71:
72: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'C';
73: fnd_dsql.g_bind_vtbl(fnd_dsql.g_nbinds) := p_value;
74:
75: fnd_dsql.g_dsql_text := (fnd_dsql.g_dsql_text ||
76: ':FND_BIND' || To_char(fnd_dsql.g_nbinds));
69: end if;
70: fnd_dsql.g_nbinds := fnd_dsql.g_nbinds + 1;
71:
72: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'C';
73: fnd_dsql.g_bind_vtbl(fnd_dsql.g_nbinds) := p_value;
74:
75: fnd_dsql.g_dsql_text := (fnd_dsql.g_dsql_text ||
76: ':FND_BIND' || To_char(fnd_dsql.g_nbinds));
77: EXCEPTION
71:
72: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'C';
73: fnd_dsql.g_bind_vtbl(fnd_dsql.g_nbinds) := p_value;
74:
75: fnd_dsql.g_dsql_text := (fnd_dsql.g_dsql_text ||
76: ':FND_BIND' || To_char(fnd_dsql.g_nbinds));
77: EXCEPTION
78: WHEN OTHERS THEN
79: report_error(g_package_name || '.add_bind(VARCHAR2)', Sqlerrm);
72: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'C';
73: fnd_dsql.g_bind_vtbl(fnd_dsql.g_nbinds) := p_value;
74:
75: fnd_dsql.g_dsql_text := (fnd_dsql.g_dsql_text ||
76: ':FND_BIND' || To_char(fnd_dsql.g_nbinds));
77: EXCEPTION
78: WHEN OTHERS THEN
79: report_error(g_package_name || '.add_bind(VARCHAR2)', Sqlerrm);
80: RAISE;
83:
84: PROCEDURE add_bind(p_value IN DATE)
85: IS
86: BEGIN
87: if (fnd_dsql.g_nbinds = g_maximum_varray_size) then
88: raise_application_error(-20001, 'Bind arrays are full. ' ||
89: 'Maximum Number of Binds: ' || g_maximum_varray_size);
90: end if;
91: fnd_dsql.g_nbinds := fnd_dsql.g_nbinds + 1;
87: if (fnd_dsql.g_nbinds = g_maximum_varray_size) then
88: raise_application_error(-20001, 'Bind arrays are full. ' ||
89: 'Maximum Number of Binds: ' || g_maximum_varray_size);
90: end if;
91: fnd_dsql.g_nbinds := fnd_dsql.g_nbinds + 1;
92:
93: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'D';
94: fnd_dsql.g_bind_dtbl(fnd_dsql.g_nbinds) := p_value;
95:
89: 'Maximum Number of Binds: ' || g_maximum_varray_size);
90: end if;
91: fnd_dsql.g_nbinds := fnd_dsql.g_nbinds + 1;
92:
93: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'D';
94: fnd_dsql.g_bind_dtbl(fnd_dsql.g_nbinds) := p_value;
95:
96: fnd_dsql.g_dsql_text := (fnd_dsql.g_dsql_text ||
97: ':FND_BIND' || To_char(fnd_dsql.g_nbinds));
90: end if;
91: fnd_dsql.g_nbinds := fnd_dsql.g_nbinds + 1;
92:
93: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'D';
94: fnd_dsql.g_bind_dtbl(fnd_dsql.g_nbinds) := p_value;
95:
96: fnd_dsql.g_dsql_text := (fnd_dsql.g_dsql_text ||
97: ':FND_BIND' || To_char(fnd_dsql.g_nbinds));
98: EXCEPTION
92:
93: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'D';
94: fnd_dsql.g_bind_dtbl(fnd_dsql.g_nbinds) := p_value;
95:
96: fnd_dsql.g_dsql_text := (fnd_dsql.g_dsql_text ||
97: ':FND_BIND' || To_char(fnd_dsql.g_nbinds));
98: EXCEPTION
99: WHEN OTHERS THEN
100: report_error(g_package_name || '.add_bind(DATE)', Sqlerrm);
93: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'D';
94: fnd_dsql.g_bind_dtbl(fnd_dsql.g_nbinds) := p_value;
95:
96: fnd_dsql.g_dsql_text := (fnd_dsql.g_dsql_text ||
97: ':FND_BIND' || To_char(fnd_dsql.g_nbinds));
98: EXCEPTION
99: WHEN OTHERS THEN
100: report_error(g_package_name || '.add_bind(DATE)', Sqlerrm);
101: RAISE;
103:
104: PROCEDURE add_bind(p_value IN NUMBER)
105: IS
106: BEGIN
107: if (fnd_dsql.g_nbinds = g_maximum_varray_size) then
108: raise_application_error(-20001, 'Bind arrays are full. ' ||
109: 'Maximum Number of Binds: ' || g_maximum_varray_size);
110: end if;
111: fnd_dsql.g_nbinds := fnd_dsql.g_nbinds + 1;
107: if (fnd_dsql.g_nbinds = g_maximum_varray_size) then
108: raise_application_error(-20001, 'Bind arrays are full. ' ||
109: 'Maximum Number of Binds: ' || g_maximum_varray_size);
110: end if;
111: fnd_dsql.g_nbinds := fnd_dsql.g_nbinds + 1;
112:
113: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'N';
114: fnd_dsql.g_bind_ntbl(fnd_dsql.g_nbinds) := p_value;
115:
109: 'Maximum Number of Binds: ' || g_maximum_varray_size);
110: end if;
111: fnd_dsql.g_nbinds := fnd_dsql.g_nbinds + 1;
112:
113: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'N';
114: fnd_dsql.g_bind_ntbl(fnd_dsql.g_nbinds) := p_value;
115:
116: fnd_dsql.g_dsql_text := (fnd_dsql.g_dsql_text ||
117: ':FND_BIND' || To_char(fnd_dsql.g_nbinds));
110: end if;
111: fnd_dsql.g_nbinds := fnd_dsql.g_nbinds + 1;
112:
113: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'N';
114: fnd_dsql.g_bind_ntbl(fnd_dsql.g_nbinds) := p_value;
115:
116: fnd_dsql.g_dsql_text := (fnd_dsql.g_dsql_text ||
117: ':FND_BIND' || To_char(fnd_dsql.g_nbinds));
118: EXCEPTION
112:
113: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'N';
114: fnd_dsql.g_bind_ntbl(fnd_dsql.g_nbinds) := p_value;
115:
116: fnd_dsql.g_dsql_text := (fnd_dsql.g_dsql_text ||
117: ':FND_BIND' || To_char(fnd_dsql.g_nbinds));
118: EXCEPTION
119: WHEN OTHERS THEN
120: report_error(g_package_name || '.add_bind(NUMBER)', Sqlerrm);
113: fnd_dsql.g_bind_ttbl(fnd_dsql.g_nbinds) := 'N';
114: fnd_dsql.g_bind_ntbl(fnd_dsql.g_nbinds) := p_value;
115:
116: fnd_dsql.g_dsql_text := (fnd_dsql.g_dsql_text ||
117: ':FND_BIND' || To_char(fnd_dsql.g_nbinds));
118: EXCEPTION
119: WHEN OTHERS THEN
120: report_error(g_package_name || '.add_bind(NUMBER)', Sqlerrm);
121: RAISE;
124:
125: PROCEDURE set_cursor(p_cursor_id IN INTEGER)
126: IS
127: BEGIN
128: fnd_dsql.g_cursor_id := p_cursor_id;
129: EXCEPTION
130: WHEN OTHERS THEN
131: report_error(g_package_name || '.set_cursor_id()', Sqlerrm);
132: RAISE;
134:
135: PROCEDURE do_binds
136: IS
137: BEGIN
138: FOR i IN 1..fnd_dsql.g_nbinds LOOP
139: IF (fnd_dsql.g_bind_ttbl(i) = 'D') THEN
140: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
141: ':FND_BIND' || To_char(i),
142: fnd_dsql.g_bind_dtbl(i));
135: PROCEDURE do_binds
136: IS
137: BEGIN
138: FOR i IN 1..fnd_dsql.g_nbinds LOOP
139: IF (fnd_dsql.g_bind_ttbl(i) = 'D') THEN
140: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
141: ':FND_BIND' || To_char(i),
142: fnd_dsql.g_bind_dtbl(i));
143: ELSIF (fnd_dsql.g_bind_ttbl(i) = 'N') THEN
136: IS
137: BEGIN
138: FOR i IN 1..fnd_dsql.g_nbinds LOOP
139: IF (fnd_dsql.g_bind_ttbl(i) = 'D') THEN
140: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
141: ':FND_BIND' || To_char(i),
142: fnd_dsql.g_bind_dtbl(i));
143: ELSIF (fnd_dsql.g_bind_ttbl(i) = 'N') THEN
144: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
138: FOR i IN 1..fnd_dsql.g_nbinds LOOP
139: IF (fnd_dsql.g_bind_ttbl(i) = 'D') THEN
140: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
141: ':FND_BIND' || To_char(i),
142: fnd_dsql.g_bind_dtbl(i));
143: ELSIF (fnd_dsql.g_bind_ttbl(i) = 'N') THEN
144: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
145: ':FND_BIND' || To_char(i),
146: fnd_dsql.g_bind_ntbl(i));
139: IF (fnd_dsql.g_bind_ttbl(i) = 'D') THEN
140: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
141: ':FND_BIND' || To_char(i),
142: fnd_dsql.g_bind_dtbl(i));
143: ELSIF (fnd_dsql.g_bind_ttbl(i) = 'N') THEN
144: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
145: ':FND_BIND' || To_char(i),
146: fnd_dsql.g_bind_ntbl(i));
147: ELSE
140: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
141: ':FND_BIND' || To_char(i),
142: fnd_dsql.g_bind_dtbl(i));
143: ELSIF (fnd_dsql.g_bind_ttbl(i) = 'N') THEN
144: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
145: ':FND_BIND' || To_char(i),
146: fnd_dsql.g_bind_ntbl(i));
147: ELSE
148: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
142: fnd_dsql.g_bind_dtbl(i));
143: ELSIF (fnd_dsql.g_bind_ttbl(i) = 'N') THEN
144: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
145: ':FND_BIND' || To_char(i),
146: fnd_dsql.g_bind_ntbl(i));
147: ELSE
148: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
149: ':FND_BIND' || To_char(i),
150: fnd_dsql.g_bind_vtbl(i));
144: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
145: ':FND_BIND' || To_char(i),
146: fnd_dsql.g_bind_ntbl(i));
147: ELSE
148: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
149: ':FND_BIND' || To_char(i),
150: fnd_dsql.g_bind_vtbl(i));
151: END IF;
152: END LOOP;
146: fnd_dsql.g_bind_ntbl(i));
147: ELSE
148: dbms_sql.bind_variable(fnd_dsql.g_cursor_id,
149: ':FND_BIND' || To_char(i),
150: fnd_dsql.g_bind_vtbl(i));
151: END IF;
152: END LOOP;
153: EXCEPTION
154: WHEN OTHERS THEN
161: RETURN VARCHAR2
162: IS
163: l_return VARCHAR2(32000);
164: BEGIN
165: l_return := Rtrim(Ltrim(fnd_dsql.g_dsql_text));
166: IF (p_with_debug) THEN
167: l_return := l_return || chr_newline;
168: FOR i IN 1..fnd_dsql.g_nbinds LOOP
169: l_return := (l_return || fnd_dsql.g_bind_ttbl(i) ||
164: BEGIN
165: l_return := Rtrim(Ltrim(fnd_dsql.g_dsql_text));
166: IF (p_with_debug) THEN
167: l_return := l_return || chr_newline;
168: FOR i IN 1..fnd_dsql.g_nbinds LOOP
169: l_return := (l_return || fnd_dsql.g_bind_ttbl(i) ||
170: ':FND_BIND' || To_char(i) || '=' );
171: IF (fnd_dsql.g_bind_ttbl(i) = 'D') THEN
172: l_return := l_return || To_char(fnd_dsql.g_bind_dtbl(i),
165: l_return := Rtrim(Ltrim(fnd_dsql.g_dsql_text));
166: IF (p_with_debug) THEN
167: l_return := l_return || chr_newline;
168: FOR i IN 1..fnd_dsql.g_nbinds LOOP
169: l_return := (l_return || fnd_dsql.g_bind_ttbl(i) ||
170: ':FND_BIND' || To_char(i) || '=' );
171: IF (fnd_dsql.g_bind_ttbl(i) = 'D') THEN
172: l_return := l_return || To_char(fnd_dsql.g_bind_dtbl(i),
173: 'YYYY/MM/DD HH24:MI:SS');
167: l_return := l_return || chr_newline;
168: FOR i IN 1..fnd_dsql.g_nbinds LOOP
169: l_return := (l_return || fnd_dsql.g_bind_ttbl(i) ||
170: ':FND_BIND' || To_char(i) || '=' );
171: IF (fnd_dsql.g_bind_ttbl(i) = 'D') THEN
172: l_return := l_return || To_char(fnd_dsql.g_bind_dtbl(i),
173: 'YYYY/MM/DD HH24:MI:SS');
174: ELSIF (fnd_dsql.g_bind_ttbl(i) = 'N') THEN
175: l_return := l_return || fnd_dsql.g_bind_ntbl(i);
168: FOR i IN 1..fnd_dsql.g_nbinds LOOP
169: l_return := (l_return || fnd_dsql.g_bind_ttbl(i) ||
170: ':FND_BIND' || To_char(i) || '=' );
171: IF (fnd_dsql.g_bind_ttbl(i) = 'D') THEN
172: l_return := l_return || To_char(fnd_dsql.g_bind_dtbl(i),
173: 'YYYY/MM/DD HH24:MI:SS');
174: ELSIF (fnd_dsql.g_bind_ttbl(i) = 'N') THEN
175: l_return := l_return || fnd_dsql.g_bind_ntbl(i);
176: ELSE
170: ':FND_BIND' || To_char(i) || '=' );
171: IF (fnd_dsql.g_bind_ttbl(i) = 'D') THEN
172: l_return := l_return || To_char(fnd_dsql.g_bind_dtbl(i),
173: 'YYYY/MM/DD HH24:MI:SS');
174: ELSIF (fnd_dsql.g_bind_ttbl(i) = 'N') THEN
175: l_return := l_return || fnd_dsql.g_bind_ntbl(i);
176: ELSE
177: l_return := l_return || fnd_dsql.g_bind_vtbl(i);
178: END IF;
171: IF (fnd_dsql.g_bind_ttbl(i) = 'D') THEN
172: l_return := l_return || To_char(fnd_dsql.g_bind_dtbl(i),
173: 'YYYY/MM/DD HH24:MI:SS');
174: ELSIF (fnd_dsql.g_bind_ttbl(i) = 'N') THEN
175: l_return := l_return || fnd_dsql.g_bind_ntbl(i);
176: ELSE
177: l_return := l_return || fnd_dsql.g_bind_vtbl(i);
178: END IF;
179: l_return := l_return || chr_newline;
173: 'YYYY/MM/DD HH24:MI:SS');
174: ELSIF (fnd_dsql.g_bind_ttbl(i) = 'N') THEN
175: l_return := l_return || fnd_dsql.g_bind_ntbl(i);
176: ELSE
177: l_return := l_return || fnd_dsql.g_bind_vtbl(i);
178: END IF;
179: l_return := l_return || chr_newline;
180: END LOOP;
181: END IF;
207: WHEN OTHERS THEN
208: NULL;
209: END dbms_debug;
210:
211: PROCEDURE fnd_dsql_test
212: IS
213: i INTEGER;
214: m INTEGER;
215: l_dsql VARCHAR2(32000);
214: m INTEGER;
215: l_dsql VARCHAR2(32000);
216: l_debug VARCHAR2(32000);
217: BEGIN
218: fnd_dsql.init;
219: fnd_dsql.add_text('Start:' || chr_newline);
220: i := 0;
221: LOOP
222: i := i + 1;
215: l_dsql VARCHAR2(32000);
216: l_debug VARCHAR2(32000);
217: BEGIN
218: fnd_dsql.init;
219: fnd_dsql.add_text('Start:' || chr_newline);
220: i := 0;
221: LOOP
222: i := i + 1;
223: IF i > g_maximum_varray_size THEN
223: IF i > g_maximum_varray_size THEN
224: EXIT;
225: END IF;
226: m := MOD(i,3);
227: fnd_dsql.add_text(' i:' || To_char(i));
228: IF m = 0 THEN
229: fnd_dsql.add_text('varchar2=');
230: fnd_dsql.add_bind('test' || To_char(i));
231: ELSIF m = 1 THEN
225: END IF;
226: m := MOD(i,3);
227: fnd_dsql.add_text(' i:' || To_char(i));
228: IF m = 0 THEN
229: fnd_dsql.add_text('varchar2=');
230: fnd_dsql.add_bind('test' || To_char(i));
231: ELSIF m = 1 THEN
232: fnd_dsql.add_text('date=');
233: fnd_dsql.add_bind(Sysdate);
226: m := MOD(i,3);
227: fnd_dsql.add_text(' i:' || To_char(i));
228: IF m = 0 THEN
229: fnd_dsql.add_text('varchar2=');
230: fnd_dsql.add_bind('test' || To_char(i));
231: ELSIF m = 1 THEN
232: fnd_dsql.add_text('date=');
233: fnd_dsql.add_bind(Sysdate);
234: ELSE
228: IF m = 0 THEN
229: fnd_dsql.add_text('varchar2=');
230: fnd_dsql.add_bind('test' || To_char(i));
231: ELSIF m = 1 THEN
232: fnd_dsql.add_text('date=');
233: fnd_dsql.add_bind(Sysdate);
234: ELSE
235: fnd_dsql.add_text('number=');
236: fnd_dsql.add_bind(i);
229: fnd_dsql.add_text('varchar2=');
230: fnd_dsql.add_bind('test' || To_char(i));
231: ELSIF m = 1 THEN
232: fnd_dsql.add_text('date=');
233: fnd_dsql.add_bind(Sysdate);
234: ELSE
235: fnd_dsql.add_text('number=');
236: fnd_dsql.add_bind(i);
237: END IF;
231: ELSIF m = 1 THEN
232: fnd_dsql.add_text('date=');
233: fnd_dsql.add_bind(Sysdate);
234: ELSE
235: fnd_dsql.add_text('number=');
236: fnd_dsql.add_bind(i);
237: END IF;
238: END LOOP;
239: l_dsql := fnd_dsql.get_text;
232: fnd_dsql.add_text('date=');
233: fnd_dsql.add_bind(Sysdate);
234: ELSE
235: fnd_dsql.add_text('number=');
236: fnd_dsql.add_bind(i);
237: END IF;
238: END LOOP;
239: l_dsql := fnd_dsql.get_text;
240: l_debug := fnd_dsql.get_text(TRUE);
235: fnd_dsql.add_text('number=');
236: fnd_dsql.add_bind(i);
237: END IF;
238: END LOOP;
239: l_dsql := fnd_dsql.get_text;
240: l_debug := fnd_dsql.get_text(TRUE);
241: dbms_debug(l_dsql);
242: dbms_debug(l_debug);
243: EXCEPTION
236: fnd_dsql.add_bind(i);
237: END IF;
238: END LOOP;
239: l_dsql := fnd_dsql.get_text;
240: l_debug := fnd_dsql.get_text(TRUE);
241: dbms_debug(l_dsql);
242: dbms_debug(l_debug);
243: EXCEPTION
244: WHEN OTHERS THEN
245: l_dsql := 'SQLERRM:' || Sqlerrm;
246: l_debug := 'i:' || To_char(i) || ' ' || fnd_message.get;
247: dbms_debug(l_dsql);
248: dbms_debug(l_debug);
249: END fnd_dsql_test;
250:
251:
252: --
253: -- Package Initialization.
252: --
253: -- Package Initialization.
254: --
255: BEGIN
256: fnd_dsql.chr_newline := fnd_global.newline;
257: fnd_dsql.g_dsql_text := NULL;
258: fnd_dsql.g_cursor_id := NULL;
259: fnd_dsql.g_nbinds := 0;
260:
253: -- Package Initialization.
254: --
255: BEGIN
256: fnd_dsql.chr_newline := fnd_global.newline;
257: fnd_dsql.g_dsql_text := NULL;
258: fnd_dsql.g_cursor_id := NULL;
259: fnd_dsql.g_nbinds := 0;
260:
261: --
254: --
255: BEGIN
256: fnd_dsql.chr_newline := fnd_global.newline;
257: fnd_dsql.g_dsql_text := NULL;
258: fnd_dsql.g_cursor_id := NULL;
259: fnd_dsql.g_nbinds := 0;
260:
261: --
262: -- Call varray constructors. Otherwise it gives
255: BEGIN
256: fnd_dsql.chr_newline := fnd_global.newline;
257: fnd_dsql.g_dsql_text := NULL;
258: fnd_dsql.g_cursor_id := NULL;
259: fnd_dsql.g_nbinds := 0;
260:
261: --
262: -- Call varray constructors. Otherwise it gives
263: -- ORA-06531: Reference to uninitialized collection
261: --
262: -- Call varray constructors. Otherwise it gives
263: -- ORA-06531: Reference to uninitialized collection
264: --
265: fnd_dsql.g_bind_ttbl := varchar2_tbl_type();
266: fnd_dsql.g_bind_vtbl := varchar2_tbl_type();
267: fnd_dsql.g_bind_dtbl := date_tbl_type();
268: fnd_dsql.g_bind_ntbl := number_tbl_type();
269:
262: -- Call varray constructors. Otherwise it gives
263: -- ORA-06531: Reference to uninitialized collection
264: --
265: fnd_dsql.g_bind_ttbl := varchar2_tbl_type();
266: fnd_dsql.g_bind_vtbl := varchar2_tbl_type();
267: fnd_dsql.g_bind_dtbl := date_tbl_type();
268: fnd_dsql.g_bind_ntbl := number_tbl_type();
269:
270: --
263: -- ORA-06531: Reference to uninitialized collection
264: --
265: fnd_dsql.g_bind_ttbl := varchar2_tbl_type();
266: fnd_dsql.g_bind_vtbl := varchar2_tbl_type();
267: fnd_dsql.g_bind_dtbl := date_tbl_type();
268: fnd_dsql.g_bind_ntbl := number_tbl_type();
269:
270: --
271: -- Extend the varrays. Otherwise it gives
264: --
265: fnd_dsql.g_bind_ttbl := varchar2_tbl_type();
266: fnd_dsql.g_bind_vtbl := varchar2_tbl_type();
267: fnd_dsql.g_bind_dtbl := date_tbl_type();
268: fnd_dsql.g_bind_ntbl := number_tbl_type();
269:
270: --
271: -- Extend the varrays. Otherwise it gives
272: -- ORA-06533: Subscript beyond count
270: --
271: -- Extend the varrays. Otherwise it gives
272: -- ORA-06533: Subscript beyond count
273: --
274: fnd_dsql.g_bind_ttbl.EXTEND(g_maximum_varray_size);
275: fnd_dsql.g_bind_vtbl.EXTEND(g_maximum_varray_size);
276: fnd_dsql.g_bind_dtbl.EXTEND(g_maximum_varray_size);
277: fnd_dsql.g_bind_ntbl.EXTEND(g_maximum_varray_size);
278: EXCEPTION
271: -- Extend the varrays. Otherwise it gives
272: -- ORA-06533: Subscript beyond count
273: --
274: fnd_dsql.g_bind_ttbl.EXTEND(g_maximum_varray_size);
275: fnd_dsql.g_bind_vtbl.EXTEND(g_maximum_varray_size);
276: fnd_dsql.g_bind_dtbl.EXTEND(g_maximum_varray_size);
277: fnd_dsql.g_bind_ntbl.EXTEND(g_maximum_varray_size);
278: EXCEPTION
279: WHEN OTHERS THEN
272: -- ORA-06533: Subscript beyond count
273: --
274: fnd_dsql.g_bind_ttbl.EXTEND(g_maximum_varray_size);
275: fnd_dsql.g_bind_vtbl.EXTEND(g_maximum_varray_size);
276: fnd_dsql.g_bind_dtbl.EXTEND(g_maximum_varray_size);
277: fnd_dsql.g_bind_ntbl.EXTEND(g_maximum_varray_size);
278: EXCEPTION
279: WHEN OTHERS THEN
280: report_error(g_package_name || '.Package Initialization', Sqlerrm);
273: --
274: fnd_dsql.g_bind_ttbl.EXTEND(g_maximum_varray_size);
275: fnd_dsql.g_bind_vtbl.EXTEND(g_maximum_varray_size);
276: fnd_dsql.g_bind_dtbl.EXTEND(g_maximum_varray_size);
277: fnd_dsql.g_bind_ntbl.EXTEND(g_maximum_varray_size);
278: EXCEPTION
279: WHEN OTHERS THEN
280: report_error(g_package_name || '.Package Initialization', Sqlerrm);
281: RAISE;
278: EXCEPTION
279: WHEN OTHERS THEN
280: report_error(g_package_name || '.Package Initialization', Sqlerrm);
281: RAISE;
282: END fnd_dsql;