在oracle下,显示游标的打开和关闭不会影响事务的提交和回滚。
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for 32-bit Windows: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
SQL> select * from t;
NUM NAME
---------- --------------------------------------------------
1 a
2 b
3 c
4 d
5 e
SQL> select * from t1;
未选定行
SQL> DECLARE
2 v_num t.num%TYPE ;
3 v_name t.name%TYPE ;
4 CURSOR cur IS
5 Select num,name from test.t;
6 Begin
7 open cur;
8 LOOP
9 FETCH cur INTO v_num, v_name;
10 EXIT WHEN cur%NOTFOUND ;
11 insert into t1 values(v_num,v_name);
12 END LOOP ;
13 close cur;
14 End ;
15 /
PL/SQL 过程已成功完成。
SQL>
SQL>
SQL> select * from t1;
NUM NAME
---------- --------------------------------------------------
1 a
2 b
3 c
4 d
5 e
SQL>
SQL>
SQL> rollback;
回退已完成。
SQL> select * from t1;
未选定行
SQL>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20750200/viewspace-701216/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20750200/viewspace-701216/