ITPub博客

首页 > 数据库 > Oracle > 【SQL*Plus】直接X掉窗口对SQL*Plus中的操作结果的影响

【SQL*Plus】直接X掉窗口对SQL*Plus中的操作结果的影响

原创 Oracle 作者:OCMU联盟 时间:2009-10-31 18:44:41 0 删除 编辑
我曾经针对这个问题做过大量的测试,相对来说PuTTY的行为比较稳定,在X掉窗口时会有提示“Are you sure you want to close this session?”,如果点击“OK”便会关闭窗口,PuTTY的行为是提交所有之前的操作,也有例外,如果操作完成之后网络断掉了,再次连接后获得的内容将是操作之前的结果,类似于Windows的cmd中的行为,不理会之前的操作。

但是在secureCRT默认情况下,如果直接X掉窗口,会提示“Do you wish to disconnect from ***”,点击“Yes”会推出操作的窗口。此时的结果有时会得到一个commit之前的操作结果,有时会得到一个rollback的结果。可以测试一下,比较的诡异。

Toad工具其中就有一个单独对这个行为的配置,当直接关闭窗口的时候,Toad是提示你commit还是rollback之前的操作,也可以通过设置影响这个行为,如设置成每次退出时将之前操作的内容全部rollback,或设置成为commit的行为。

也许有一天,Oracle会对这个问题给出一种统一的控制方法。类似于EXITCOMMIT参数,没准会叫做“CLOSECLIENTCOMMIT”。不过可能性不大。
关于11gR2中
EXITCOMMIT参数的介绍请参考下面文章
《【11gR2】【SQL*Plus】使用EXITCOMMIT参数控制exit时commit的行为》
http://space.itpub.net/519536/viewspace-617655


既然直接X掉窗口对SQL*Plus中的结果影响效果与客户端有关,因此,通过直接关闭客户端的方法退出事务操作是非常危险的。所以操作规范化很重要。
操作规范如下:
1)一定要显式提交(commit)和回滚(rollback);
2)忘记显式commit或rollback的时候也要正常的通过“exit”退出SQL*Plus界面,毕竟在11gR2中这个行为是稳定的;
3)严格禁止通过关闭窗口的方式退出SQL*Plus操作界面。

-- The End --

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70034820/viewspace-2993756/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
OCM联盟( Oracle Certified Master Union)是由侯圣文(ACE总监)发起的一个公益组织,旨在为每一个OCM大师提供一个可以继续展示自己才华,技术和实力的平台。

注册时间:2007-05-27

  • 博文量
    799
  • 访问量
    8407026