288: OPEN l_qlp_csr;
289: LOOP
290: FETCH l_qlp_csr INTO l_qlp_rec;
291: EXIT WHEN l_qlp_csr%NOTFOUND;
292: l_cursor_id := DBMS_SQL.OPEN_CURSOR; --Bug2934909
293: plsql_block := 'BEGIN ' ||
294: l_qlp_rec.package_name || '.' ||
295: l_qlp_rec.procedure_name || '( ' ||
296: 'x_return_status => :l_return_status ' ||
322: -- End Bug 2934909
323:
324: plsql_block := plsql_block || ') ; END;';
325: -- Bug 2934909
326: DBMS_SQL.PARSE(l_cursor_id,plsql_block , 2);
327: DBMS_SQL.BIND_VARIABLE(l_cursor_id, ':l_return_status',l_return_status);
328: DBMS_SQL.BIND_VARIABLE(l_cursor_id, ':p_chr_id',p_chr_id);
329:
330: If l_parameter_tbl.count > 0 then
323:
324: plsql_block := plsql_block || ') ; END;';
325: -- Bug 2934909
326: DBMS_SQL.PARSE(l_cursor_id,plsql_block , 2);
327: DBMS_SQL.BIND_VARIABLE(l_cursor_id, ':l_return_status',l_return_status);
328: DBMS_SQL.BIND_VARIABLE(l_cursor_id, ':p_chr_id',p_chr_id);
329:
330: If l_parameter_tbl.count > 0 then
331: FOR j in l_parameter_tbl.FIRST..l_parameter_tbl.LAST LOOP
324: plsql_block := plsql_block || ') ; END;';
325: -- Bug 2934909
326: DBMS_SQL.PARSE(l_cursor_id,plsql_block , 2);
327: DBMS_SQL.BIND_VARIABLE(l_cursor_id, ':l_return_status',l_return_status);
328: DBMS_SQL.BIND_VARIABLE(l_cursor_id, ':p_chr_id',p_chr_id);
329:
330: If l_parameter_tbl.count > 0 then
331: FOR j in l_parameter_tbl.FIRST..l_parameter_tbl.LAST LOOP
332: DBMS_SQL.BIND_VARIABLE(l_cursor_id, to_char(j),l_parameter_tbl(j).param_value);
328: DBMS_SQL.BIND_VARIABLE(l_cursor_id, ':p_chr_id',p_chr_id);
329:
330: If l_parameter_tbl.count > 0 then
331: FOR j in l_parameter_tbl.FIRST..l_parameter_tbl.LAST LOOP
332: DBMS_SQL.BIND_VARIABLE(l_cursor_id, to_char(j),l_parameter_tbl(j).param_value);
333: END LOOP;
334: end if;
335:
336: -- End Bug 2934909
336: -- End Bug 2934909
337: -- clean up the message list
338: fnd_msg_pub.initialize;
339:
340: l_dummy := DBMS_SQL.EXECUTE(l_cursor_id);
341: dbms_Sql.variable_Value(l_cursor_id, ':l_return_status', l_return_status);
342:
343: DBMS_SQL.CLOSE_CURSOR(l_cursor_id); --Bug 3385459
344:
337: -- clean up the message list
338: fnd_msg_pub.initialize;
339:
340: l_dummy := DBMS_SQL.EXECUTE(l_cursor_id);
341: dbms_Sql.variable_Value(l_cursor_id, ':l_return_status', l_return_status);
342:
343: DBMS_SQL.CLOSE_CURSOR(l_cursor_id); --Bug 3385459
344:
345: /* Bug2934909
339:
340: l_dummy := DBMS_SQL.EXECUTE(l_cursor_id);
341: dbms_Sql.variable_Value(l_cursor_id, ':l_return_status', l_return_status);
342:
343: DBMS_SQL.CLOSE_CURSOR(l_cursor_id); --Bug 3385459
344:
345: /* Bug2934909
346: BEGIN
347: EXECUTE IMMEDIATE plsql_block
564: okc_context.restore_contexts;
565:
566: --Bug 3300707
567: if (l_cursor_id is not null) then
568: DBMS_SQL.CLOSE_CURSOR(l_cursor_id);
569: end if;
570: IF l_qlp_csr%ISOPEN THEN
571: CLOSE l_qlp_csr;
572: END IF;
588: okc_context.restore_contexts;
589:
590: -- close cursor
591: if (l_cursor_id is not null) then --Bug 3378989
592: DBMS_SQL.CLOSE_CURSOR(l_cursor_id); --Bug2934909
593: end if;
594: -- store SQL error message on message stack
595: OKC_API.SET_MESSAGE(
596: p_app_name => G_APP_NAME,