Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: pl/sql open cursor question
What I don't understand is the loop construction:
Hi
if we assume it is implements this way (see below) there will only be one cursor since c_gid
is a bind variable and there for the cursor will be sharded from call to call of the function.
create or replace function XYZ (gid in number) return varchar2 is
cursor cur1(c_gid number) is select C1 from tab1 where id = c_gid;
begin
for x in cur1(gid) loop
return x.c1;
end loop;
return null;
exception
when others then return null;
end;
It will only be one coursor
Guang Mei wrote:
I have a function like below (psudo code). If cursor cur1 have multiple rows, would the code leave the cursor open when this function is called? So if this function is called 1000 times, I would have 1000 open cursors? function XYZ(gid in number) return varchar2 is cursor cur1 is select C1 from tab1 where ID = gid; begin for x in cur1 loop return x.c1; end loop; return null; exception when others then return null; end;
--
Best regards/Venlig hilsen
Peter Gram
Miracle A/S
Kratvej 2
DK - 2760 Måløv
Cell: (+45) 2527 7107
Phone: (+45) 4466 8855
Fax: (+45) 4466 8856
Home: (+45) 3874 5696
Email: peter.gram@miracleas.dk
-- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: Carel-Jan Engel INET: cjpengel.dbalert_at_xs4all.nl Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- 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 Sun Dec 28 2003 - 13:39:25 CST