使用OLE DB和ADO调用返回记录集的Oracle存储过程(2)
2014-01-21 01:07
导读:以下以职工表emp为例,介绍如何定义返回记录集的Oracle存储过程,emp表的定义如下: CREATE TABLE emp( empno NUMBER(4) NOT NULL, --职工编号 ename VARCHAR2(10), --职工姓
以下以职工表emp为例,介绍如何定义返回记录集的Oracle存储过程,emp表的定义如下:
CREATE TABLE emp(
empno NUMBER(4) NOT NULL, --职工编号
ename VARCHAR2(10), --职工姓名
hiredate DATE, --雇佣日期
sal NUMBER(7,2), --工资
deptno NUMBER(2)); --所属部门编号
下面给出返回记录集的Oracle存储过程和存储函数的示例程序包头和包体,其中存储过程GetEmpRecords含有两个REF CURSOR类型的传出参数,返回两个记录集,存储函数GetDept的返回值类型为REF CURSOR,返回一个记录集。
--定义一个名为Employees的程序包头
CREATE OR REPLACE PACKAGE Employees AS
TYPE empcur IS REF CURSOR;
--empcur为自定义REF CURSOR类型
--声明一个存储过程GetEmpRecords
PROCEDURE GetEmpRecords(p_cursor OUT empcur,
q_cursor OUT empcur,
indeptno IN NUMBER,
p_errorcode OUT NUMBER);
--声明一个存储函数GetDept
FUNCTION GetDept(inempno IN NUMBER,
p_errorcode OUT NUMBER)
RETURN empcur;
END Employees; ---程序包头定义结束
--定义Employees的程序包体