sql >> Database >  >> RDS >> Oracle

Hoe een opgeslagen procedure in een andere sessie in dezelfde tijd uit te voeren in pl/sql

Om te voorkomen dat u meerdere Oracle-taken plaatst, kunt u proberen William Robertson Parallel PL/ te gebruiken SQL-opstartprogramma .

Het idee is om een ​​functie te maken met PARALLEL_ENABLE en PIPELINED kenmerken:

   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;

Functie execute_command gebruikt autonomous_transaction .

Het ziet er zo uit:

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


  1. url-tekstcompressie (niet verkorten) en opslaan in mysql

  2. laravel retourneert json-tekenreeks op lokale machine, maar geheel getal op elastische bonenstaakinstantie

  3. MySql Selecteer waar en C#

  4. SQLite-uitzondering tijdens het verwijderen van rij