exitcommit

来源:互联网 发布:天心软件怎么用 编辑:程序博客网 时间:2024/06/03 21:57
SQL> select * from v$version where rownum=1;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
今天做实验时,用的是sqlplus,插入一条数据后,没有提交误关了sqlplus,重新登录后,发现这条数据已经插入了,下面模拟这个过程:
SQL> create table tt(id number);
表已创建。
SQL> insert into tt values(3);
已创建 1 行。
SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开


[oracle@localhost ~]$ sqlplus hr/hr
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 5月 17 00:09:23 2015
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
连接到: 
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> select * from tt;


        ID
----------
        
         3
         

查了一下文档,这是11gR2 sqlplus中新添的内容:http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve040.htm

SET EXITC[OMMIT] {ON | OFF}

Specifies whether the default EXIT behavior is COMMIT or ROLLBACK.

The default setting is ON, which means that work is committed on exit, whether you expected it to be committed or not. Set EXITCOMMIT OFF to rollback work on exit.

Table 12-5 shows the exit action associated with combinations of SET commands (AUTOCOMMIT & EXITCOMMIT) and the EXIT command.

Table 12-5 Exit Behavior: AUTOCOMMIT, EXITCOMMIT, EXIT

AUTOCOMMITEXITCOMMITEXITExit Behavior

ON

ON

-

COMMIT

ON

OFF

-

COMMIT

OFF

ON

-

COMMIT

OFF

OFF

-

ROLLBACK

ON

ON

COMMIT

COMMIT

ON

ON

ROLLBACK

COMMIT

ON

OFF

COMMIT

COMMIT

ON

OFF

ROLLBACK

COMMIT

OFF

ON

COMMIT

COMMIT

OFF

ON

ROLLBACK

ROLLBACK

OFF

OFF

COMMIT

COMMIT

OFF

OFF

ROLLBACK

ROLLBACK


默认是set exitcommit on;
当我改成set exitcommit off:
SQL> select * from tt;


        ID
----------
         3


SQL> insert into tt values(0);


已创建 1 行。


SQL> EXIT
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开

连接到: 
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> select * from  tt;


        ID
----------
         3



0 0