| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: For update - Where current of
On Saturday 29 September 2001 07:50, Nirmal Kumar Muthu Kumaran wrote:
> Hi gurus
>
> Can any one give the usage of 'for update' clause, while declaring a
> cursor in Pl/sql?
>
>
'Where current of' can be very useful.
You can for instance use it to avoid 'select for update' on a large number of rows. You can use it to commit in a loop while avoiding the dreaded 'fetch across commit' error.
Here's an example from some real code.
Jared
declare
cursor cUpdatePersons( login_id_in persons.login_id%type )
is
select *
from persons
where login_id = login_id_in
for update;
rPersons persons%rowtype;
rEmptabActive emptab_tmp%rowtype;
cursor cEmpTabInactive
is
select distinct login_id
from emptab_tmp
where status = 'I';
cursor cEmpTabActive( login_id_in persons.login_id%type )
is
select *
from emptab_tmp
where login_id = login_id_in
and status = 'A'
and effective_end_date > sysdate;
begin
for irec in cEmpTabInactive
loop
open cEmpTabActive( irec.login_id );
fetch cEmpTabActive into rEmptabActive;
if not cEmpTabActive%found then
open cUpdatePersons( irec.login_id );
fetch cUpdatePersons into rPersons;
if cUpdatePersons%found then
update persons
set status = 'I'
where current of cUpdatePersons;
end if;
close cUpdatePersons;
end if;
close cEmpTabActive;
end loop;
end;
-- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Jared Still INET: jkstill_at_cybcon.com Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).Received on Sat Sep 29 2001 - 22:50:11 CDT
![]() |
![]() |