博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PLSQL中对cursor 使用的小例子
阅读量:6316 次
发布时间:2019-06-22

本文共 1220 字,大约阅读时间需要 4 分钟。

开始

SET SERVEROUTPUT ON;DECLARE  v_empno emp.empno%TYPE;  v_ename emp.ename%TYPE;    CURSOR emp_cursor IS  SELECT empno,ename from emp where empno<>1000;  BEGINLOOP  IF NOT emp_cursor%ISOPEN  THEN     OPEN emp_cursor;  END IF;     FETCH emp_cursor INTO  v_empno,v_ename;   EXIT WHEN emp_cursor%NOTFOUND;   dbms_output.put_line('empno is:' || v_empno || ' emp name is:' || v_ename);    END LOOP;END;/

运行结果

anonymous block completedempno is:7369 emp name is:SMITHempno is:7499 emp name is:ALLENempno is:7521 emp name is:WARDempno is:7566 emp name is:JONESempno is:7654 emp name is:MARTINempno is:7698 emp name is:BLAKEempno is:7782 emp name is:CLARKempno is:7788 emp name is:SCOTTempno is:7839 emp name is:KINGempno is:7844 emp name is:TURNERempno is:7876 emp name is:ADAMSempno is:7900 emp name is:JAMESempno is:7902 emp name is:FORDempno is:7934 emp name is:MILLER

要注意的一点:FETCH 后,马上进行EXIT 比较好。这是因为如果不是这样,在循环中还有来一次,此时可能有干了一些操作,这回导致出现问题。

还有一点,由于 第一次FETCH之前,%NOTFOUND 的值为空。

所以如果 FETCH 从来没有真的成功过,那么 EXIT WHEN emp_cusor%NOTFOUND 有可能一直为NULL,这样就一直在循环里无法退出。所以,更好的写法是:

EXIT WHEN emp_cursor%NOTFOUND OR emp_cursor%NOTFOUND IS NULL

结束 

本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/11/14/2769377.html,如需转载请自行联系原作者

你可能感兴趣的文章
linux内核编程笔记【原创】
查看>>
ORA-02085: database link %s connects to %s 解决思路
查看>>
DB2常用命令
查看>>
HTTP Server Error 500 内部服务器错误
查看>>
让树莓派说出自己的IP地址
查看>>
转--发布js支持Firefox的加入收藏代码
查看>>
for循环或Repeat里面对某个字段进行复杂处理的解决方案
查看>>
nyoj 322 Sort 【树阵】
查看>>
最佳实践系列:企业云账号安全管理
查看>>
Impala通过JDBC方式访问
查看>>
前端如何正确选择offer,到底选哪个?
查看>>
基于ARM处理器的反汇编器软件简单设计及实现
查看>>
Google Zxing 二维码生成与解析
查看>>
浅谈Hive和HBase区别
查看>>
C语言将字符串转换成对应的数字(十进制、十六进制)【转】
查看>>
据说每个大牛、小牛都应该有自己的库——框架篇
查看>>
EntityFramework之原始查询如何查询未映射的值,你又知道多少?
查看>>
target_list 中的 list_make1 的含义
查看>>
PLSQL DBMS_DDL.ALTER_COMPILE
查看>>
[Step By Step]SAP HANA PAL多元指数回归预测分析Multiple Exponential Regression编程实例EXPREGRESSION(模型)...
查看>>