Re: Using FORALL with associative arrays
From: Tor Hovland <teh_at_nospam.com>
Date: Wed, 16 Nov 2005 13:57:43 +0100
Message-ID: <w_OdnXkhwZ-VsObe4p2dnA_at_telenor.com>
end; Received on Wed Nov 16 2005 - 13:57:43 CET
Date: Wed, 16 Nov 2005 13:57:43 +0100
Message-ID: <w_OdnXkhwZ-VsObe4p2dnA_at_telenor.com>
Responding to myself here, as nobody else seem willing to :-)
It finally dawned on me that I can simulate LIMIT by taking manual control over the FORALL range. The following procedure is a very performant and scalable way to push data into oracle.
PROCEDURE testfast(par1 in testarray) is
startPos int; endPos int; begin startPos := par1.first; loop endPos := startPos + 100; if endPos > par1.last then endPos := par1.last; end if; FORALL i IN startPos .. endPos insert into dummy (test) values (par1(i)); startPos := endPos + 1; exit when endPos = par1.last; end loop;
end; Received on Wed Nov 16 2005 - 13:57:43 CET