ITPub博客

首页 > 数据库 > Oracle > 【SQL*Plus】在SQL*Plus中谨慎使用Ctrl+S快捷键

【SQL*Plus】在SQL*Plus中谨慎使用Ctrl+S快捷键

原创 Oracle 作者:OCMU联盟 时间:2011-01-10 22:54:37 0 删除 编辑
在UNIX/Linux平台中的SQL*Plus命令行提示符下如果误使用了“Ctrl+S”组合键将会Suspends the screen display(锁定屏幕显示),随后的操作都暂时不会在屏幕上显示,就像屏幕被冻结了一样。这个现象是由于SQL*Plus继承了UNIX/Linux命令行下特殊组合键的操作行为,因此该现象在UNIX/Linux命令行提示符下同样存在。

这个组合键很容易误键入,因为Ctrl+S是各种文本编辑器中最常用的“保存”快捷键,对正在编辑的文档有随时使用快捷键保存习惯的朋友需要尤为注意。

既然知道了这个问题现象,那么如何解除这种屏幕锁定呢?不清楚的朋友可以参考UNIX/Linux操作手册。答案是:使用Ctrl+Q组合键可以解除这种屏幕锁定。

对该现象进行一下模拟,同时简单探索一番。

1.使用“Ctrl+S”组合键完成对屏幕的锁定
sys@ora10g>

此时我们输入几下回车键。因为此时处于锁屏状态,屏幕上将不会有任何反应。

2.使用“Ctrl+Q”组合键解除屏幕锁定
在解除锁定的那一瞬间,之前的回车键效果得以体现。
sys@ora10g> sys@ora10g> sys@ora10g> sys@ora10g> sys@ora10g> sys@ora10g> sys@ora10g> sys@ora10g>

3.在锁屏阶段尝试SQL语句的输入
使用Ctrl+S锁屏,然后在锁屏的过程中盲打“select * from v$version;”并回车。当使用Ctrl+Q键解除屏幕锁定之后,SQL语句返回了SQL查询结果。注意,此时屏幕上并没有显示我们盲打的SQL语句内容,只有与之对应的返回结果。
sys@ora10g>
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE    10.2.0.3.0      Production
TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production

4.进一步思考和验证尝试
既然在锁屏阶段同样接收键盘输入,如果是一个DML类型(甚至于DDL类型)的SQL操作,锁屏阶段键入的信息是否会对数据产生影响呢?答案是:不会,只有在解除屏幕锁定之后命令才会被真正的执行,也就是说锁屏阶段键入的信息被暂时地缓存了起来。

验证这个结论。

1)在SQL*Plus的Ctrl+S锁屏阶段盲打如下内容,注意不要敲错。
insert into t values (1);
commit;

2)在另外开启的会话中查看t表数据
sec@ora10g> select * from t;

no rows selected

可见,锁屏阶段键入的SQL并没有生效。

2)使用Ctrl+Q解除锁屏
sec@ora10g>
1 row created.

sec@ora10g>
Commit complete.

在解除锁屏的一刹那,可以看到盲打的两条SQL语句有依次执行成功的提示。

3)最后的确认
再次查看第二个会话中t表的数据。
sec@ora10g> select * from t;

         X
----------
         1

结论显然,在锁屏锁定解除之后SQL语句才真正有效的被执行。
有兴趣的朋友可以再进一步做一个尝试:在锁屏阶段盲打的内容如果在被Ctrl+Q解除锁定之前就被人为的关掉操作窗口退出,盲打的内容将被取消,不会生效。这是显然的。

5.小结
本文给出了一个在UNIX/Linux环境下使用SQL*Plus时常见的一个问题现象及解决方法。由此又引申出了几个比较有趣的尝试。有兴趣的朋友可以继续探索一下。

Good luck.

secooler
11.01.10

-- The End --

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

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

注册时间:2007-05-27

  • 博文量
    799
  • 访问量
    8406996