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: [EMAIL PROTECTED]

Reply via email to