sql >> Databasteknik >  >> RDS >> Oracle

Hur man kör en lagrad procedur i en annan session samtidigt i pl/sql

För att undvika att lägga upp flera Oracle-jobb kan du prova att använda William Robertson Parallel PL/ SQL-startprogram .

Tanken är att skapa en funktion med PARALLEL_ENABLE och PIPELINED funktioner:

   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;

Funktion execute_command använder autonomous_transaction .

Det ser ut så här:

procedure execute_command
  ( p_what log_times.what%type )
is
  pragma autonomous_transaction;
begin
  execute immediate p_what;
  commit;
end execute_command;


  1. Mönstermatchning:Roligare när jag var barn

  2. Finns det en MySQL-motsvarighet till sprintf?

  3. BESTÄLLNING AV Alias ​​fungerar inte

  4. automatiskt öka den andra kolumnen