在包中使用游标变量
2013-09-17 09:34
99 查看
--创建包规范
CREATE OR REPLACE PACKAGE emp_data_action AS
TYPE emp_type IS REF CURSOR RETURN emp%ROWTYPE;--定义强类型游标类型
--定义使游标变量的子程序
PROCEDURE getempbydeptno (emp_cur IN OUT emp_type,p_depotno NUMBER);
END emp_data_action;
--实现包体
CREATE OR REPLACE PACKAGE BODY emp_data_action AS
--创建在包规范中定义的过程
PROCEDURE getempbydeptno(emp_cur IN OUT emp_type,p_deptno NUMBER) IS
emp_row emp%ROWTYPE;
BEGIN
OPEN emp_cur FOR SELECT * FROM emp WHERE deptno = p_deptno --打开游标变量
LOOP
FETCH emp_cur INTO emp_row; --提取数据
EXIT WHEN emp_cur%NOTFOUND;
--输出游标数据
DBMS_OUTPUT.put_line('员工名称:'||emp_row.ename||'部门编号:'||emp_row.deptno);
END LOOP
CLOSE emp_cur;
END;
END;
END emp_data_action;
编译包时需要先对包规范进行编译,只有包规范编译通过后才能编译包体,在成功编译包后,可以用如下代码调用包中的过程;
DECLARE
emp_cursors emp_data_action.emp_type;--定义在包中定义的游标类型
BEGIN
emp_data_action.getempbydeptno(emp_cursors,20);--调用在包中定义的过程
END;
CREATE OR REPLACE PACKAGE emp_data_action AS
TYPE emp_type IS REF CURSOR RETURN emp%ROWTYPE;--定义强类型游标类型
--定义使游标变量的子程序
PROCEDURE getempbydeptno (emp_cur IN OUT emp_type,p_depotno NUMBER);
END emp_data_action;
--实现包体
CREATE OR REPLACE PACKAGE BODY emp_data_action AS
--创建在包规范中定义的过程
PROCEDURE getempbydeptno(emp_cur IN OUT emp_type,p_deptno NUMBER) IS
emp_row emp%ROWTYPE;
BEGIN
OPEN emp_cur FOR SELECT * FROM emp WHERE deptno = p_deptno --打开游标变量
LOOP
FETCH emp_cur INTO emp_row; --提取数据
EXIT WHEN emp_cur%NOTFOUND;
--输出游标数据
DBMS_OUTPUT.put_line('员工名称:'||emp_row.ename||'部门编号:'||emp_row.deptno);
END LOOP
CLOSE emp_cur;
END;
END;
END emp_data_action;
编译包时需要先对包规范进行编译,只有包规范编译通过后才能编译包体,在成功编译包后,可以用如下代码调用包中的过程;
DECLARE
emp_cursors emp_data_action.emp_type;--定义在包中定义的游标类型
BEGIN
emp_data_action.getempbydeptno(emp_cursors,20);--调用在包中定义的过程
END;
相关文章推荐
- 使用PL/SQL 记录变量接收游标数据
- 对于存储过程中表名是变量的游标使用
- 存储过程使用游标变量返回结果集(推荐)
- 游标变量、动态sql及变量绑定的使用
- Oracle游标中直接使用日期变量的问题解决
- Oracle游标使用方法(&游标里使用变量绑定)
- [Pro*c]滚动游标变量的使用
- sql临时表,表变量,CTE,游标使用方法
- PL/SQL中游标和游标变量的使用
- PL/SQL中游标和游标变量的使用
- 存储过程使用游标变量返回结果集
- 匿名块where条件使用变量(游标+集合)测试
- Oracle游标变量的使用实例
- PL/SQL中游标和游标变量的使用
- sql server游标的Cursor for后面使用变量
- PL/SQL中游标和游标变量的使用(转)
- 游标变量REF COUSOR(动态游标)使用实例
- SQLServer游标(Cursor)简介和使用说明 及全局变量说明和功能
- 存储过程调用存储过程,存储过程调用函数,返回表表变量,游标使用
- sql server游标的Cursor for后面使用变量