在linux下使SQLPLUS歷史回撥功能

qinwen740發表於2010-07-01

window下的sqlplus可以通過箭頭鍵,來回看歷史命令,用起來非常的方便。

但是在linux裡就沒有這麼方面了,錯了一個命令,我們必須重新敲一次,辛苦了手指頭叻。

看到一個文章,很方便的一招,給我們帶來方便。

通過rlwrap包實現linux裡的sqlplus歷史命令的功能
這個包依賴readline包

下載
rlwrap-0.36.tar.gzhttp://utopia.knoware.nl/~hlub/rlwrap/
readline-6.1.tar.gzhttp://tiswww.case.edu/php/chet/readline/rltop.html
到本地 oracle目錄下

然後解壓
由於rlwrap依賴readline包,我們先安裝readline包
#gunzip readline-6.1.tar.gz
#tar -xf readline-6.1.tar
#cd readline-6.1
#./configure
#make
#make install
安裝以後,我們可以安裝rlwrap叻

#gunzip rlwrap-0.36.tar.gz
#tar -xf rlwrap-0.30.tar
#cd rlwrap-0.30
#./configure
#make
#make install
現在rlwrap就已經安裝到我們的linux裡。

我們可以用rlwrap sqlplus執行試試,好悲慘喲,好像有錯誤
rlwrap: error while loading shared libraries: libreadline.so.6: cannot open shared object file:

No such file or directory

報錯喲,彆著急,這裡其實這裡是.so庫沒有load到,

你可以修改/etc/ld.so.conf,設定我們so庫的load路徑,先切換至root下,輸入su,接著密碼。
先找到這個libreadline.so.6的路徑
find / -iname libreadline.so.6
/usr/local/lib/libreadline.so.6
在最後的一行下加上/usr/local/lib就可以叻,這裡的
include ld.so.conf.d/*.conf
/usr/local/lib

加入要重啟生效,不過我們也可以執行ldconfig即時生效

2、使用
[oracle@localhost ~]$ rlwrap sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Sat Apr 5 10:01:29 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


SQL> conn / as sysdba                                                                      
Connected to an idle instance.

然後就可以使用向上、向下鍵來呼叫已經執行過的命令了。
如果嫌每次敲rlwrap不爽,編輯oracle的主目錄的.bashrc檔案,新增下面的部分,編輯.bashrc檔案後別忘了

使配置生效。
# vi .bashrc
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"
alias lsnrctl="rlwrap lsnrctl"

之後就跟直接使用SQL*PLUS沒什麼區別了,唯一的好處就是多歷史回撥功能,方便吧,呵呵。
~> sqlplus /nolog

另網摘:
可以修改Oracle使用者的.bash_profile檔案,如果不行,試下另一個
[oracle@localhost ~]$ vi .bash_profile
加上:
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"

引用:http://space.itpub.net/?uid-1708925-action-viewspace-itemid-628494

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

相關文章