解決sql中上下左右backspace不能用的方法

ddlovefish發表於2014-01-22

一. 解決輸入 BACKSPACE 鍵變成 ^h 的問題

#su - oracle  

$stty erase ^h.

要永久生效,可以加入到使用者環境配置檔案 .bash_profile 加入如下一行

stty erase ^h

 

二. 解決上下左右鍵問題


1.  安裝 readline 元件包

到  的 gun/readline目錄下,下載最新版本的 read.*.tar.gz 檔案,

如:   -6.2.tar.gz


然後上傳到伺服器進行編譯安裝, 相關指令:


tar zxvf 檔名

./configure   或者  perl Makefile

make

make install

2. 安裝 rlwrap 元件包

到如下網頁搜尋下載相應作業系統版本的 rlwrap  rpm 包,這裡以RHEL4為例:

/stat/4/idpl/5810350/com/rlwrap-0.30-1.el4.i386.rpm.html

如:  ftp://ftp.univie.ac.at/systems/linux/fedora/epel/4/i386/rlwrap-0.30-1.el4.i386.rpm


注意:

對於 x86_64 系統, 也安裝上述 i386版的rpm包即可。

然後上傳到伺服器後使用類似如下指令進行安裝:

#rpm -Uvh rlwrap-0.30-1.el4.i386.rpm


也可以到其官方下載原始檔進行手工編譯:

/~hlub/uck/rlwrap/

但是, 我在編譯的時候遇到了如下錯誤, 所以還是推薦使用 RPM 包進行安裝

=======================================================

......
readline.o(.text+0xf5c): In function `prompt_is_single_line':
/home/rlwrap-0.36/src/readline.c:686: undefined reference to `rl_variable_value'
collect2: ld returned 1 exit status
make[1]: *** [rlwrap] 錯誤 1
make[1]: Leaving directory `/home/rlwrap-0.36/src'
make: *** [install-recursive] 錯誤 1
......

=======================================================

3. 使用方法
可以手動輸入如下指令使用:
# rlwrap sqlplus "/as sysdba"


為了方便,也可以在Oracle使用者環境配置檔案
.bash_profile中加入如下語句:

stty erase ^h  

alias sqlplus='rlwrap sqlplus'


最後,再次進入sqlplus,上下左右和Backspace鍵都可以用了
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29306197/viewspace-1074149/,如需轉載,請註明出處,否則將追究法律責任。

相關文章