参考:
create or replace package dinya_pkg_test
as
type myCursor is ref cursor;
function get(p_id number) return myCursor;
end dinya_pkg_test;create or replace package body dinya_pkg_test
as
--***********************************************************
--输入ID 返回记录集的函数
function get(p_id number) return myCursor is
rc myCursor;
strsql varchar2(200);
begin
if p_id=0 then
open rc for select a.user_name from fnd_user a ;
else
strsql:='select a.user_name from fnd_user a where a.user_id=:p_id';
open rc for strsql using p_id;
end if;
return rc;
end get;
end dinya_pkg_test;
--调用
set serverout on
declare
w_rc dinya_pkg_test.myCursor;
w_name varchar2(100);
begin
w_rc:=dinya_pkg_test.get(0);
loop
fetch w_rc into w_name;
exit when w_rc%notfound;
dbms_output.put_line(w_name);
end loop;
end;
/
create or replace package dinya_pkg_test
as
type myCursor is ref cursor;
function get(p_id number) return myCursor;
end dinya_pkg_test;create or replace package body dinya_pkg_test
as
--***********************************************************
--输入ID 返回记录集的函数
function get(p_id number) return myCursor is
rc myCursor;
strsql varchar2(200);
begin
if p_id=0 then
open rc for select a.user_name from fnd_user a ;
else
strsql:='select a.user_name from fnd_user a where a.user_id=:p_id';
open rc for strsql using p_id;
end if;
return rc;
end get;
end dinya_pkg_test;
--调用
set serverout on
declare
w_rc dinya_pkg_test.myCursor;
w_name varchar2(100);
begin
w_rc:=dinya_pkg_test.get(0);
loop
fetch w_rc into w_name;
exit when w_rc%notfound;
dbms_output.put_line(w_name);
end loop;
end;
/
解决方案 »
- decode有问题?
- 表的主键,外键
- oracle 10g worksheet
- 新手请教Oracle的有关服务方面的问题
- 帮忙:由于不小心在ORACLE DBA中把用户表空间移去了,但是数据文件还在原来的目录,请问怎么恢复了,操作系统是WINDOWS2000
- oracle 9i全文检索中的unicode编码问题,请高手指点。
- 问个触发器的问题
- 请教oracle向mySql 移植时需要注意哪些问题?
- 关于SQL Plus的问题:为什么我在SQL Plus 中粘贴多个SQL语句都不分个执行?
- 这个触发器怎么不好使呢!怪怪怪!高手来领分!
- 关于在触发器中给自增型字段赋值的问题!
- 请教oracle最大会话数和进程数可以设到多少?????
exit when w_rc%notfound;
这句的顺序是不是有问题啊