【存储过程】利用包构建存储过程和存储函数的案例(转)

存储过程:  
包  
create or replace package emppackage is  
  -- Author  : ADMINISTRATOR  
  -- Created : 2012-3-22 14:02:43  
  -- Purpose : 声明一个存储过程   
  -- Public type declarations  
  type empcursor is ref cursor;  
  -- Public function and procedure declarations  
  --声明一个存储过程  
  procedure selectEmps(emplist out empcursor);  
end emppackage;  
包体  
create or replace package body emppackage is  
  -- Function and procedure implementations  
  procedure selectEmps(emplist out empcursor) is  
  begin  
    open emplist for select * from emp;  
  end;  
end emppackage;  
在命令窗口中调用:  
declare  
empc1 emppackage.empcursor;  
emp_row emp%rowtype;  
begin  
emppackage.selectEmps(empc1);  
loop  
fetch empc1 into emp_row;  
exit when empc1%notfound;  
dbms_output.put_line(emp_row.empno);  
end loop;  
close empc1;  
end;  
结果:  
2345  
7369  
7499  
7521  

存储函数:  
包:  
create or replace package mypackage is  
  -- Author  : ADMINISTRATOR  
  -- Created : 2012-3-22 14:06:47  
  -- Purpose : 存储函数    
  -- Public type declarations  
  type empc1 is ref cursor;   
  function queryEmps return empc1;  
end mypackage;  
包体:  
create or replace package body mypackage is  
function queryEmps return empc1 is  
  emp_c1 empc1;  
  begin  
    open emp_c1 for select * from emp;  
    return emp_c1;  
    end;    
end mypackage;  
在命令窗口中调用:  
 declare  
emp_c1 mypackage.empc1;  
emp_row  emp%rowtype;  
begin  
emp_c1:=mypackage.queryEmps;  
loop  
 fetch emp_c1 into emp_row;  
exit when emp_c1%notfound;  
dbms_output.put_line(emp_row.empno);  
end loop;  
close emp_c1;  
end;  
结果:  
2345  
7369  
7499  
7521  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值