【SQL*Plus】在SQL*Plus中謹慎使用Ctrl+S快捷鍵
在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>
此時我們輸入幾下Enter鍵。因為此時處於鎖屏狀態,螢幕上將不會有任何反應。
2.使用“Ctrl+Q”組合鍵解除螢幕鎖定
在解除鎖定的那一瞬間,之前的Enter鍵效果得以體現。
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 --
這個組合鍵很容易誤鍵入,因為Ctrl+S是各種文字編輯器中最常用的“儲存”快捷鍵,對正在編輯的文件有隨時使用快捷鍵儲存習慣的朋友需要尤為注意。
既然知道了這個問題現象,那麼如何解除這種螢幕鎖定呢?不清楚的朋友可以參考UNIX/Linux操作手冊。答案是:使用Ctrl+Q組合鍵可以解除這種螢幕鎖定。
對該現象進行一下模擬,同時簡單探索一番。
1.使用“Ctrl+S”組合鍵完成對螢幕的鎖定
sys@ora10g>
此時我們輸入幾下Enter鍵。因為此時處於鎖屏狀態,螢幕上將不會有任何反應。
2.使用“Ctrl+Q”組合鍵解除螢幕鎖定
在解除鎖定的那一瞬間,之前的Enter鍵效果得以體現。
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部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-683635/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用SQL*PlusSQL
- 【SQL*Plus】使用BREAK和COMPUTE在SQL*Plus中得到分組統計結果SQL
- EditPlus快捷鍵
- 在sql*plus中顯示長字元SQL字元
- 在shell中執行SQL*Plus命令SQL
- 【sqlplus】SQL*Plus命令使用大全SQL
- 在SQL Server中謹慎匯入匯出大容量資料SQLServer
- 在sql*plus裡編輯SQL命令SQL
- 使用sql*plus編輯sql文字SQL
- 【SQL*Plus】使用SQL*Plus的Preliminary方式連線資料庫SQL資料庫
- 【SQL*Plus】使用SQL*Plus的-S選項精簡輸出資訊SQL
- 使用OEM,SQL*Plus,iSQL*Plus 管理Oracle例項SQLOracle
- sql plus命令使用總結SQL
- SQL/PLUS命令的使用大全SQL
- SQL*PLUS命令的使用大全SQL
- 在SQL*PLUS下使用10046事件例子SQL事件
- 在windows上,Vim 與 SQL*Plus 結合使用WindowsSQL
- 【SQL*Plus】使用Oracle 11gR2的EXITCOMMIT引數控制在SQL*Plus中exit時commit的行為SQLOracleMIT
- SQL*Plus安全(一)SQL
- SQL*Plus安全(二)SQL
- SQL*PLUS安全(三)SQL
- SQL*PLUS安全(四)SQL
- SQL*Plus Substitution VariablesSQL
- set autotrace in SQL*PlusSQL
- sql*plus入門SQL
- ORACLE SQL and SQL*PLUS (strong recommend)OracleSQL
- sql之27 using sql*plusSQL
- sql之26 using sql*plusSQL
- SQL入門之6 sql*plusSQL
- 【SQL*Plus】直接X掉視窗對SQL*Plus中的操作結果的影響SQL
- 在linux的Oracle使上下方向鍵對SQL*Plus生效LinuxOracleSQL
- [ZT]讓editplus識別SQL關鍵字SQL
- Oracle使用SQL*Plus生成html檔案OracleSQLHTML
- SQL PLUS命令使用大全(轉,特有用)SQL
- SQL*PLUS命令的使用大全(一)薦SQL
- 使用sql*plus就要show一下SQL
- SQL*PLUS命令的使用大全(zt)(轉)SQL
- PL/SQL Developer使用技巧、快捷鍵SQLDeveloper