The following lines contain the word 'select', 'insert', 'update' or 'delete':
function build_select return varchar2
is
buffer varchar2(10000);
fa_rx_util_pkg.debug('fa_rx_util_pkg.build_select('||to_char(Num_Columns)||')+');
while idx <= Num_Columns and Rep_Columns(idx).select_column_name is null loop
idx := idx + 1;
buffer := 'SELECT '||Hint_Clause||'
'||Rep_Columns(idx).select_column_name;
if Rep_Columns(idx).select_column_name is not null then
buffer := buffer ||',
'||Rep_Columns(idx).select_column_name;
fa_rx_util_pkg.debug('SELECT Statement = ');
fa_rx_util_pkg.debug('fa_rx_util_pkg.build_select()-');
end build_select;
function build_insert return varchar2
is
idx number;
fa_rx_util_pkg.debug('fa_rx_util_pkg.build_insert()+');
while idx <= Num_Columns and Rep_Columns(idx).insert_column_name is null loop
idx := idx + 1;
buf1 := 'INSERT INTO '||Interface_Table||' (
'||Rep_Columns(idx).insert_column_name;
if Rep_Columns(idx).insert_column_name is not null then
buf1 := buf1 ||',
'||Rep_Columns(idx).insert_column_name;
buf1 := buf1||', request_id, created_by, creation_date, last_updated_by, last_update_date, last_update_login';
fa_rx_util_pkg.debug('INSERT Statement = ');
fa_rx_util_pkg.debug('fa_rx_util_pkg.build_insert()-');
end build_insert;
procedure bind_insert(p_cursor in number)
is
buffer varchar2(30000);
fa_rx_util_pkg.debug('fa_rx_util_pkg.bind_insert()+');
if Rep_Columns(idx).insert_column_name is not null then
buffer := buffer ||'dbms_sql.bind_variable('||to_char(p_cursor)||
', '':b'||to_char(idx)||
''', '||Rep_Columns(idx).placeholder_name||');
fa_rx_util_pkg.debug('bind_insert: ' || buffer);
fa_rx_util_pkg.debug('fa_rx_util_pkg.bind_insert()-');
end bind_insert;
if Rep_Columns(idx).select_column_name is not null then
if Rep_Columns(idx).column_type = 'VARCHAR2' then
dbms_sql.define_column(
c => p_cursor,
position => sel_idx,
column => l_varchar,
column_size => to_char(Rep_Columns(idx).column_length));
if Rep_Columns(idx).select_column_name is not null then
buffer := buffer ||'dbms_sql.define_column('||
to_char(p_cursor)||', '||
to_char(sel_idx)||', '||
Rep_Columns(idx).placeholder_name;
if Rep_Columns(idx).select_column_name is not null then
buffer := buffer ||'dbms_sql.column_value('||
to_char(p_cursor)||','||
to_char(sel_idx)||','||
Rep_Columns(idx).placeholder_name||');
select
rx.interface_table
into
Interface_Table
from
fnd_concurrent_requests r,
fa_rx_reports rx
where
r.request_id = p_request_id and
r.program_application_id = rx.application_id and
r.concurrent_program_id = rx.concurrent_program_id;
dbms_sql.parse(c, 'delete from '||Interface_Table||' where request_id = :request_id', dbms_sql.native); --* bug#3207863, rravunny
fa_rx_util_pkg.debug('init_request: ' || to_char(dbms_sql.last_row_count)||' row(s) deleted from table '||Interface_Table);
p_select_column_name in varchar2,
p_insert_column_name in varchar2,
p_placeholder_name in varchar2,
p_column_type in varchar2,
p_column_length in number default null)
is
l_index number;
p_select_column_name||','||
p_insert_column_name||','||
p_placeholder_name||','||
p_column_type||'('||to_char(p_column_length)||'))+');
Rep_Columns(l_index).select_column_name := p_select_column_name;
Rep_Columns(l_index).insert_column_name := p_insert_column_name;
cursor_select integer;
cursor_insert integer;
cursor_select := dbms_sql.open_cursor;
dbms_sql.parse(cursor_select,
build_select,
dbms_sql.native);
':CURSOR_SELECT',
cursor_select);
define_columns(cursor_select);
fa_rx_util_pkg.debug('run_report: ' || 'Executing SELECT statement');
rows := dbms_sql.execute(cursor_select);
fa_rx_util_pkg.debug('run_report: ' || 'Building INSERT');
cursor_insert := dbms_sql.open_cursor;
dbms_sql.parse(cursor_insert, build_insert, dbms_sql.native);
rows := dbms_sql.fetch_rows(cursor_select);
column_values(cursor_select);
fa_rx_util_pkg.debug('run_report: ' || 'Insert Row');
bind_insert(cursor_insert);
rows := dbms_sql.execute(cursor_insert);
dbms_sql.close_cursor(cursor_insert);
dbms_sql.close_cursor(cursor_select);