linux環境sqlplus中使用backspace 及 方向鍵

linux環境sqlplus中使用backspace鍵出現亂碼的解決方法


  在linux環境下使用sqlplus,在回刪(backspace)時往往會出現 一串的亂碼。出現亂碼是由於oracle的sqlplus不使用gnu的readline庫造成的。
 
  解決方法有兩種:
 
1。要使用回刪鍵(backspace)時,同時按住ctrl鍵
 
2。設定環境變量
 
在bash下:$ stty erase ^?
或者把 stty erase ^? 添加到.bash_profile中。
 
在csh下:$ stty erase ^H
或者把 stty erase ^H  添加到.cshrc中。
-------------------------------------------
或者(recommended):
當在Linux Shell中運行SQL*Plus的時候,並不提供瀏覽歷史命令行的功能。相反的,在Windows操作系統上,當在DOS命令窗口中運行SQL*Plus的時候,可以使用向上,向下鍵來跳回之前已經執行過的SQL語句。你可以 根據需要修改他們,然後按[Enter]重新提交執行。

爲了在Linux中達到同樣的目的,你可以安裝rlwrap,這個程式本身是個Shell,可以運行任何你提供給它的命令包括參數,並添加命令歷史瀏覽功能。 The rlwrap program is under the GPL license。

rlwrap 最新的版本爲rlwrap-0.29.tar.gz,官方主頁爲http://utopia.knoware.nl/~hlub/uck/rlwrap/

安裝過程如下

引用

cd /usr/local/src
wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.29.tar.gz
tar xzvf rlwrap-0.29.tar.gz
cd rlwrap-0.29
./configure --prefix=/usr/local/rlwrap
make
make install


詳細的使用方法請參考manpage,安裝好之後就可以使用了


引用
/usr/local/rlwrap/bin/rlwrap sqlplus


然後就可以使用 上、下、左、右 鍵來編輯已執行過的命令

如果嫌每次輸入這麼長的命令很麻煩的話,可以在 oracle用戶下的 .bash_profil 中加入一條alias

引用
alias sqlplus='/usr/local/rlwrap/bin/rlwrap sqlplus'

這樣每次只要直接輸入 sqlplus命令就可以使用回調命令的功能了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章