Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да изпълним съхранена процедура в различна сесия по едно и също време в pl/sql

За да избегнете публикуването на няколко работни места на Oracle, можете да опитате да използвате William Robertson Parallel PL/ SQL стартер .

Идеята е да се създаде функция с помощта на PARALLEL_ENABLE и PIPELINED функции:

   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;

Функция execute_command използва autonomous_transaction .

Изглежда така:

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. име на динамична таблица в оператора за избор

  2. Как да конвертирам наследен израз за ляво външно присъединяване в Oracle?

  3. Не могат да се използват две връзки към база данни в една заявка

  4. Oracle SQL групира по колона с брой, но само ако колоната е нулева или 0

  5. Декларативен подход за ограничаване на диапазони от данни в табл