343: l_cursor_id INTEGER;
344: l_dummy_integer INTEGER;
345: l_dummy_varchar2 VARCHAR2(255);
346: BEGIN
347: l_cursor_id:=dbms_sql.open_cursor;
348: dbms_sql.parse(l_cursor_id,p_sql_statement,dbms_sql.v7);
349:
350: BEGIN
351: i:=0;
344: l_dummy_integer INTEGER;
345: l_dummy_varchar2 VARCHAR2(255);
346: BEGIN
347: l_cursor_id:=dbms_sql.open_cursor;
348: dbms_sql.parse(l_cursor_id,p_sql_statement,dbms_sql.v7);
349:
350: BEGIN
351: i:=0;
352: LOOP
351: i:=0;
352: LOOP
353: i:=i+1;
354: if p_bind_variables(i).datatype='NUMBER' then
355: dbms_sql.bind_variable(l_cursor_id,':' || p_bind_variables(i).name,to_number(p_bind_variables(i).value));
356: elsif p_bind_variables(i).datatype='VARCHAR2' then
357: dbms_sql.bind_variable(l_cursor_id,':' || p_bind_variables(i).name,p_bind_variables(i).value);
358: elsif p_bind_variables(i).datatype='DATE' then
359: dbms_sql.bind_variable(l_cursor_id,':' || p_bind_variables(i).name,fnd_date.canonical_to_date(p_bind_variables(i).value));
353: i:=i+1;
354: if p_bind_variables(i).datatype='NUMBER' then
355: dbms_sql.bind_variable(l_cursor_id,':' || p_bind_variables(i).name,to_number(p_bind_variables(i).value));
356: elsif p_bind_variables(i).datatype='VARCHAR2' then
357: dbms_sql.bind_variable(l_cursor_id,':' || p_bind_variables(i).name,p_bind_variables(i).value);
358: elsif p_bind_variables(i).datatype='DATE' then
359: dbms_sql.bind_variable(l_cursor_id,':' || p_bind_variables(i).name,fnd_date.canonical_to_date(p_bind_variables(i).value));
360: end if;
361: END LOOP;
355: dbms_sql.bind_variable(l_cursor_id,':' || p_bind_variables(i).name,to_number(p_bind_variables(i).value));
356: elsif p_bind_variables(i).datatype='VARCHAR2' then
357: dbms_sql.bind_variable(l_cursor_id,':' || p_bind_variables(i).name,p_bind_variables(i).value);
358: elsif p_bind_variables(i).datatype='DATE' then
359: dbms_sql.bind_variable(l_cursor_id,':' || p_bind_variables(i).name,fnd_date.canonical_to_date(p_bind_variables(i).value));
360: end if;
361: END LOOP;
362: EXCEPTION
363: WHEN OTHERS THEN
369: j:=0;
370: LOOP
371: j:=j+1;
372: l_dummy_varchar2:=p_column_names(j);
373: dbms_sql.define_column(l_cursor_id,j,l_dummy_varchar2,255);
374: END LOOP;
375: EXCEPTION
376: WHEN OTHERS THEN
377: j:=j-1;
377: j:=j-1;
378: NULL;
379: END;
380:
381: l_dummy_integer:=dbms_sql.execute(l_cursor_id);
382: loop
383: -- dbms_output.put_line(rpad('=',30,'='));
384: l_dummy_integer:=dbms_sql.fetch_rows(l_cursor_id);
385: exit when l_dummy_integer<>1;
380:
381: l_dummy_integer:=dbms_sql.execute(l_cursor_id);
382: loop
383: -- dbms_output.put_line(rpad('=',30,'='));
384: l_dummy_integer:=dbms_sql.fetch_rows(l_cursor_id);
385: exit when l_dummy_integer<>1;
386: for i in 1..j loop
387: dbms_sql.column_value(l_cursor_id,i,l_dummy_varchar2);
388: -- dbms_output.put_line(rpad(p_column_names(i),30,' ') || ' = ' || l_dummy_varchar2);
383: -- dbms_output.put_line(rpad('=',30,'='));
384: l_dummy_integer:=dbms_sql.fetch_rows(l_cursor_id);
385: exit when l_dummy_integer<>1;
386: for i in 1..j loop
387: dbms_sql.column_value(l_cursor_id,i,l_dummy_varchar2);
388: -- dbms_output.put_line(rpad(p_column_names(i),30,' ') || ' = ' || l_dummy_varchar2);
389: end loop;
390: end loop;
391:
388: -- dbms_output.put_line(rpad(p_column_names(i),30,' ') || ' = ' || l_dummy_varchar2);
389: end loop;
390: end loop;
391:
392: dbms_sql.close_cursor(l_cursor_id);
393: EXCEPTION
394: when others then
395: -- dbms_output.put_line(SQLERRM);
396: dbms_sql.close_cursor(l_cursor_id);
392: dbms_sql.close_cursor(l_cursor_id);
393: EXCEPTION
394: when others then
395: -- dbms_output.put_line(SQLERRM);
396: dbms_sql.close_cursor(l_cursor_id);
397: END dynamic_sql;
398:
399: -----------------------------------------------------
400: -- SET_SPACE_ON_ADDRESSS --