原生 sqlplus 在終端機下不支援歷史指令回溯 (Up/Down)、游標左右移動、刪除鍵,操作極不便。
rlwrap 利用 GNU Readline 庫包裝任何命令列程式,提供歷史紀錄、編輯、補全功能。
# 1. 下載最新版
wget https://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.37.tar.gz
# 2. 解壓編譯
tar xvfz rlwrap-0.37.tar.gz
cd rlwrap-0.37
./configure --prefix=/usr/local/rlwrap
make && make install
# 3. 設定 Oracle 使用者別名
vim /home/oracle/.bash_profile
# 追加
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
export PATH=/usr/local/rlwrap/bin:$PATH
# 4. 重新登入或 source 生效
su - oracle
rlwrap sqlplus / as sysdba
sqlplus 即可使用方向鍵。win-rlwrap (GitHub 專案) 達到同樣效果。SQL> SHOW USER
USER is "SYS"
SQL> -- 按 Up 鍵可回溯歷史指令,Left/Right 移動游標,Backspace 刪除
~/.sqlplus_history,可自訂 RLWRAP_HOME。rlwrap -c sqlplus 針對 SQL 關鍵字啟用 Tab 補全 (需額外詞庫)。rman、adctrl 等互動式工具同樣受益。