Để tránh đăng nhiều công việc Oracle, bạn có thể thử sử dụng William Robertson Parallel PL / Trình khởi chạy SQL .
Ý tưởng là tạo một hàm bằng PARALLEL_ENABLE
và PIPELINED
các tính năng:
function pq_submit
( p_job_list varchar2_tt
, p_pq_refcur rc_pq_driver )
return varchar2_tt
parallel_enable(partition p_pq_refcur by any)
pipelined
is
...
loop
execute_command(your_proc);
end loop;
Hàm execute_command
sử dụng autonomous_transaction
.
Nó trông như thế này:
procedure execute_command
( p_what log_times.what%type )
is
pragma autonomous_transaction;
begin
execute immediate p_what;
commit;
end execute_command;