PLSQL中对cursor 使用的小例子
2012-11-14 09:58
253 查看
开始
运行结果
要注意的一点:FETCH 后,马上进行EXIT 比较好。这是因为如果不是这样,在循环中还有来一次,此时可能有干了一些操作,这回导致出现问题。
还有一点,由于 第一次FETCH之前,%NOTFOUND 的值为空。
所以如果 FETCH 从来没有真的成功过,那么 EXIT WHEN emp_cusor%NOTFOUND 有可能一直为NULL,这样就一直在循环里无法退出。所以,更好的写法是:
EXIT WHEN emp_cursor%NOTFOUND OR emp_cursor%NOTFOUND IS NULL
结束
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; BEGIN LOOP 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 completed empno is:7369 emp name is:SMITH empno is:7499 emp name is:ALLEN empno is:7521 emp name is:WARD empno is:7566 emp name is:JONES empno is:7654 emp name is:MARTIN empno is:7698 emp name is:BLAKE empno is:7782 emp name is:CLARK empno is:7788 emp name is:SCOTT empno is:7839 emp name is:KING empno is:7844 emp name is:TURNER empno is:7876 emp name is:ADAMS empno is:7900 emp name is:JAMES empno is:7902 emp name is:FORD empno 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
结束
相关文章推荐
- plsql学习:cursor游标使用例子(1)
- PLSQL中对cursor的where current of 的使用例子
- PLSQL中RECORD和CURSOR 结合的小例子
- PLSQL的UTL_FILE使用例子
- plsql动态包使用例子
- [Android Pro] 完美Android Cursor使用例子(Android数据库操作)
- PLSQL入门:cursor传参,loop fetch使用,if使用,单引号字符表示
- PLSQL使用SQLCODE和SQLERRM的小例子
- Android ListView 最基本的用法,使用SimpleCursorAdapter 。 附例子。
- PLSQL中隐式打开cursor的小例子
- IBatis详细使用例子
- win7+64位+Oracle+11g+64位下使用PLSQL+Developer+的解决办法
- 存储过程cursor的使用
- 一个使用高德地图SDK进行逆地理编码的例子
- php 使用映射执行授权模式的例子
- 使用maven创建一个简单的MyBatis例子
- 为了避免android内存泄露,需要在使用完sql数据库游标(cursor)之后,关闭它!
- 例子使用
- 关于PopupWindow的使用例子
- Java中兩個使用invoke方法的例子