declare l_cur sys_refcursor; l_empno number; begin open l_cur for select empno from emp; loop fetch l_cur into l_empno; exit when l_cur%notfound;
dbms_output.put_line(l_empno); end loop; end;
declare type company_cursor is ref cursor; v_cursor company_cursor; company_type bmt_company%rowtype; v_cmpid varchar2(2000); v_sql varchar2(2000); begin for c1 in (select ''''||cmpid||'''' cmpid from bmt_company) loop v_cmpid:=v_cmpid||','||c1.cmpid; end loop; dbms_output.put_line (substr(v_cmpid,2)); v_sql:='select * from bmt_company where cmpid in ('||substr(v_cmpid,2)||')'; dbms_output.put_line (v_sql); open v_cursor for v_sql; loop fetch v_cursor into company_type; exit when v_cursor%notfound; dbms_output.put_Line(company_type.cmpshortnm); end loop; close v_cursor; end; 仅供参考!
l_cur sys_refcursor;
l_empno number;
begin
open l_cur for
select empno from emp; loop
fetch l_cur
into l_empno;
exit when l_cur%notfound;
dbms_output.put_line(l_empno);
end loop;
end;
type company_cursor is ref cursor;
v_cursor company_cursor;
company_type bmt_company%rowtype;
v_cmpid varchar2(2000);
v_sql varchar2(2000);
begin
for c1 in (select ''''||cmpid||'''' cmpid from bmt_company) loop
v_cmpid:=v_cmpid||','||c1.cmpid;
end loop;
dbms_output.put_line (substr(v_cmpid,2));
v_sql:='select * from bmt_company where cmpid in ('||substr(v_cmpid,2)||')';
dbms_output.put_line (v_sql);
open v_cursor for v_sql;
loop
fetch v_cursor into company_type;
exit when v_cursor%notfound;
dbms_output.put_Line(company_type.cmpshortnm);
end loop;
close v_cursor;
end;
仅供参考!