解決sqlplus中輸錯命令時的刪除、游標鍵不能使用問題

還不算暈發表於2013-11-04
sqlplus中打錯sql命令時不能回撤,不能修改,只能回車重新寫,非常麻煩。

看到 一位朋友寫了,我也記錄一下。

出錯如下:BYS@bys1>aa   ^H^H^[[D^[[D^[[C^[[C^[[A^[[A

第一種方法:使用rlwrap+SQLPLUS方法

1.安裝rlwrap軟體

安裝rlwrap之前需要readline。

readline可以直接在安裝光碟中找到 ,也可以自己上傳RMP包到光碟進行安裝。

yum -y install readline-devel-5.1-3.el5.i386.rpm
然後安裝rlwrap,需要自己上傳安裝包到 伺服器,進行安裝。

[root@oel-01 ~]# ls

 rlwrap-0.37.tar.gz

[root@oel-01 ~]# tar -zxvfrlwrap-0.37.tar.gz

[root@oel-01 rlwrap-0.37]# pwd

/root/rlwrap-0.37

[root@oel-01 rlwrap-0.37]# ./configure

[root@oel-01 rlwrap-0.37]# make

[root@oel-01 rlwrap-0.37]# make install

2.配置開啟SQLPLUS/RMAN等時使用rlwrap

在操作ORACEL的使用者的.bash_profile檔案中增加如下兩句:

[root@oel-01 oracle]# pwd

/home/oracle

[root@oel-01 oracle]# cat .bash_profile

……………………

alias sqlplus='rlwrap sqlplus'

alias rman='rlwrap rman'

配置環境變數引數後使用ORACLE使用者驗證下

[oracle@oel-01 ~]$ source .bash_profile

如下報錯是因為我尚未安裝ORACEL,所以沒有SQLPLUST 和RMAN。但是可以看到 輸入sqlplus使用的是rlwrap sqlplus

[oracle@oel-01 ~]$ sqlplus

rlwrap: Cannot execute sqlplus: No suchfile or directory

[oracle@oel-01 ~]$ rman

rlwrap: Cannot execute rman: No such fileor directory


當然不SOURCE環境變數而重登陸SSH客戶端也是可以的。

方法二:屬於臨時解決方法--本人已驗證,還是建議用上一種安裝rlwrap軟體的方法

臨時的方法:

在console裡輸入stty erase ^H, 然後再使用sqlplus 來連線資料庫。此時可以使用刪除,但是不能使用上下左右的游標鍵,會亂碼^[[A^[[B^[[B

[oracle@bys001 ~]$ stty erase ^H
[oracle@bys001 ~]$ sqlplus bys/bys
SQL*Plus: Release 11.2.0.1.0 Production on Mon Nov 4 22:42:37 2013
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

BYS@bys1>aaa  bb^[[D^[[D^[[D^[[D^[[C^[[C^[[A^[[A^[[B^[[B

永久的方式:

在使用者的.bash_profile裡面加入:--同上一步修改環境變數的方法。

stty erase ^H

PUTTY中可以在PUTTY的設定中:
設定——TERMINAL--KEYBOARD --THE Backspace key  選中CONTROL-H

相關文章