利用包构建存储过程和存储函数的案例

原创 2012年03月22日 20:25:36
存储过程:
包
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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

利用存储过程进行表数据分离的案例分享

某客户有个需求,有2张业务表,数据量比较大,有2000W行,现在的需求是把这2张表中的一部分记录,根据一定的where条件分离出去,创建到另外的归档表中,即做表记录的迁移操作。最后得到的结果是:未满足...

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

存储过程: 包 create or replace package emppackage is -- Author : ADMINISTRATOR -- Created : ...

PLSQL 基础教程 五 常用数据库对象简介(函数存储过程包)

本文简要介绍PLSQL中常用的一些数据库对象,主要包括函数、存储过程和包等等,将从相关的简介、语法、用途等等方面进行介绍。   1.       函数 简介 函数是Oracle中的一个可以单独存在...

oracle存储过程、函数和包

  • 2012-09-03 15:16
  • 3.14MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)