Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Oracle PLSQL Bulk bind

DECLARE

  TYPE Numlist IS VARRAY (100) OF NUMBER;
  Id NUMLIST := NUMLIST(7902, 7698, 7839);
BEGIN
-- Efficient method, using a bulk bind
  FORALL i IN Id.FIRST..Id.LAST -- bulk-bind the VARRAY
    UPDATE emp SET Sal = 1.1 * Sal
    WHERE Mgr = Id(i);
-- Slower method, running the UPDATE statements within a regular loop
  FOR i IN Id.FIRST..Id.LAST LOOP
    UPDATE emp SET Sal = 1.1 * Sal
    WHERE Mgr = Id(i);
  END LOOP;
END;
/

Without the bulk bind, PL/SQL sends a SQL statement to the SQL engine for each employee that is updated, leading to context switches that hurt performance. If you have a set of rows prepared in a PL/SQL table, you can bulk-insert or bulk-update the data using a loop which improves performance:



This post first appeared on EBiz Integration Technics, please read the originial post: here

Share the post

Oracle PLSQL Bulk bind

×

Subscribe to Ebiz Integration Technics

Get updates delivered right to your inbox!

Thank you for your subscription

×