存储过程使用游标变量返回结果集(推荐)
来源:互联网 发布:win2008r2安装数据库 编辑:程序博客网 时间:2024/05/16 14:15
转载自:http://www.2cto.com/database/201301/186608.html
存储过程使用游标变量返回结果集
1)登录SQLPLUS,用户为SCOTT,利用该用户提供的表EMP
www.2cto.com
[sql]
C:\Users\Administrator>sqlplus scott/scott
2)编写一个FUNCTION,返回值为游标变量
[sql]
CREATE OR REPLACE FUNCTION GETEMPCURSOR(PRM_CHOICE IN NUMBER)
RETURN SYS_REFCURSOR
IS
EMPCURSOR SYS_REFCURSOR;
BEGIN
IF PRM_CHOICE = 1 THEN
OPEN EMPCURSOR FOR SELECT * FROM EMP WHERE DEPTNO = 10;
ELSIF PRM_CHOICE =2 THEN
OPEN EMPCURSOR FOR SELECT * FROM EMP WHERE DEPTNO = 20;
ELSIF PRM_CHOICE =3 THEN
OPEN EMPCURSOR FOR SELECT * FROM EMP WHERE DEPTNO = 30;
ELSE
OPEN EMPCURSOR FOR SELECT * FROM EMP;
END IF;
RETURN EMPCURSOR;
END;
www.2cto.com
3)编写一个PLSQL块,调用上面的FUNCTION得到返回的游标变量
[sql]
DECLARE
EMPCURSOR SYS_REFCURSOR;
REC_EMP EMP%ROWTYPE;
BEGIN
EMPCURSOR := GETEMPCURSOR(10);
IF EMPCURSOR%ISOPEN THEN
LOOP
FETCH EMPCURSOR INTO REC_EMP;
EXIT WHEN EMPCURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(''||'==>'||REC_EMP.ENAME);
END LOOP;
END IF;
CLOSE EMPCURSOR;
END;
www.2cto.com
4)几点说明:
①有三种语句可以控制游标变量的使用,分别是OPEN FOR、FETCH还有CLOSE。其中OPEN用于打开游标变量。FETCH用于将游标变量中的数据存放到变量当中存储。CLOSE用于在遍历完成之后,关闭游标。
②使用游标的时候,可以将REF CURSOR指定为强类型或者弱类型(在定义的后面增加RETURN ROWTYPE的方式),如果指定为强类型,小心避免出现类型不匹配的错误。
③游标变量可以在应用于数据库服务器之间进行传递,可以在数据库内部进行传递。应用或者数据库本身不具备单独的变量存储空间,其游标变量其实就是一个指向内存的指针,实质上这些数据是共享的。
④能够将游标的四个属性%FOUND,%NOTFOUND,%ISOPEN以及%ROWCOUNT应用到游标变量中,用于判断游标变量的状态。
⑤可以使用FETCH一次获取一条记录,也可以使用FETCH BULK COLLECT INTO 一次获取一条或者多条放到一个或者多个集合类型中。
⑥不要忘记关闭游标。
0 0
- 存储过程使用游标变量返回结果集(推荐)
- 存储过程使用游标变量返回结果集
- 执行Oracle存储过程返回游标结果集
- 通过游标读取oracle存储过程返回的结果集
- SSM-Mybatis调用Oracle存储过程返回结果集(游标)
- 编写存储过程返回的结果集在游标中使用java代码调用
- oracle存储过程中使用Ref Cursor强类型游标返回结果集
- 利用游标返回结果集的的例子(Oracle 存储过程)
- 用游标返回结果集的的例子(Oracle 存储过程)
- 利用游标返回结果集的的例子(Oracle 存储过程)
- 利用游标返回结果集的的例子(Oracle 存储过程)
- 存储过程,从新的视角看待数据库应用程序开发(游标,变量,结果集)
- oracle使用游标让存储过程返回记录集
- 存储过程返回游标
- 存储过程返回游标
- 存储过程返回结果集
- 存储过程返回结果集
- 一个存储过程 游标循环结果集
- 从一般管理原则看微软的重组 .
- Android聊天软件的开发(二)--数据库
- C#、ASP.NET 遍历图片,去掉图片周边空白
- 明天终于可以休息了啊
- 获取文件属性
- 存储过程使用游标变量返回结果集(推荐)
- Java正则表达式校验邮箱和手机号
- 浅谈oracle中的context(上下文)
- easyUI--panel
- PHP $_POST
- iOS—应用程序本地化
- Oracle的上下文开发--自己定义的Context开发
- 【Data Structure & Algorithm】在排序数组中查找和为定值的两个数
- 使用forall语句的bulk dml操作