The following lines contain the word 'select', 'insert', 'update' or 'delete':
select parameter_value
from pay_action_parameters
where parameter_name = 'LOGGING';
,p_update_name varchar2
,p_batch_size number
,p_upg_proc varchar2)
is
l_start_pkid number;
l_plsql := 'select count(distinct '||p_pkid_column||'),
min('||p_pkid_column||'),
max('||p_pkid_column||')
from '||p_table_name;
l_sql := 'select '||p_pkid_column||' id_value from '||p_table_name; --- Fix For Bug # 8876219
ad_parallel_updates_pkg.initialize_id_range(
-- ad_parallel_updates_pkg.ID_RANGE, --- Fix For Bug # 8876219
ad_parallel_updates_pkg.ID_RANGE_SCAN_EQUI_ROWSETS, --- Fix For Bug # 8876219
p_table_owner,
p_table_name,
p_update_name,
p_pkid_column,
p_this_worker_num,
p_total_num_workers,
p_batch_size,
0 -- debug level
,l_sql --- Fix For Bug # 8876219
);
ad_parallel_updates_pkg.get_id_range(
l_start_pkid,
l_end_pkid,
l_any_rows_to_process,
p_batch_size,
TRUE -- Restart flag
);
ad_parallel_updates_pkg.processed_id_range(
l_rows_processed,
l_end_pkid);
** Commit the updates....
*/
commit;
ad_parallel_updates_pkg.get_id_range(
l_start_pkid,
l_end_pkid,
l_any_rows_to_process,
p_batch_size,
FALSE -- Restart flag
);
** work so don't use the AD large table update utilities instead
** do the call directly but only if this is the first worker. This means
** the other threads should exit without doing anything.
*/
if p_this_worker_num = 1 then
l_plsql := 'begin '||p_upg_proc||'(:CTRL, :START, :END, :ROWCOUNT); end;';
select parameter_value
into l_number_of_threads
from pay_action_parameters
where parameter_name = 'THREADS';
writeLog('Doing large table update.', 'G', FALSE, 20);
p_update_name => p_param4,
p_batch_size => p_param5,
p_upg_proc => p_process_to_call);