17,086
社区成员
发帖
与我相关
我的任务
分享
declare
vc_sql varchar2(1000);
n_try number;
n_status number;
begin
dbms_parallel_execute.create_task(task_name => 'T_Update');
dbms_parallel_execute.create_chunks_by_number_col(task_name => 'T_Update',
table_owner => 'TEST',
table_name => 'KETTLE_A',
table_column => 'K_ID'
chunk_size => 10000);
vc_sql := 'update KETTLE_A set flag =2 where kid := start_id between := end_id';
dbms_output.put_line(vc_sql);
dbms_parallel_execute.run_task(task_name => 'T_Update',
sql_stmt => vc_sql,
language_flag => dbms_sql.native,
parallel_level => 2);
n_try := 0;
n_status := dbms_parallel_execute.task_status('T_Update');
while (n_try < 2 and (n_status != dbms_parallel_execute.FINISHED)) loop
n_try := n_try + 1;
dbms_parallel_execute.resume_task('T_Update');
n_status := dbms_parallel_execute.task_status('T_Update');
end loop;
dbms_output.put_line('' || n_try);
dbms_parallel_execute.drop_task('T_Update');
end;