Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm thế nào để thực thi một thủ tục được lưu trữ trong một phiên khác trong cùng một thời điểm trong pl / sql

Để 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 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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi mở kết nối Oracle khi kết nối từ mã .NET

  2. Chọn 150 hàng đầu tiên, sau đó 150 hàng tiếp theo, v.v.?

  3. Hàm Oracle biên dịch thành công nhưng ném lỗi khi thực thi PLS-00221:không phải là một thủ tục hoặc không được xác định

  4. Nhận các giá trị duy nhất không được sử dụng trên bảng SQL

  5. Sử dụng FLASHBACK trong Oracle