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

PLSQL:Алтернатива на съхранената процедура за оптимална производителност

В Oracle обикновено не е необходимо да използвате глобални временни таблици за такива неща, по-скоро можете да използвате групова обработка с масиви:

declare
   cursor c is
      select col1, col2 from my_view;
   type t is table of c%rowtype;
   array t;
begin
   open c;

   loop
      fetch c bulk collect into array limit 1000;
      exit when array.count = 0;

      for i in 1..array.count loop
         null; -- Perform business logic on array(i) here
      end loop;

      forall i in 1..array.count
         insert into final_table (col1, col2)
            values (array(i).col1, array(i).col2);

   end loop;

   close c;
end;

Това е само минимален пример - вижте тази статия за повече подробности.




  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. Уточнение относно rownum

  3. Съединения и премахване на декартови произведения

  4. Как мога да попреча на Oracle SQL Developer да затвори връзката с DB?

  5. По-ефективен начин за намиране на служители с покритие между две дати