SQL*Plusがクソだったから

使いづらい.GUIクライアントとかなら使いやすいんだろうけど.CUIの使いづらさは2分で理解できた.まずインストールがめんどくさい(How to install oracle client to Ubuntu 12.04).

Readlineによるコマンドライン入力に対応していないから,↑したりC-aすると^[[Aとかなる.コマンドの補完もできない.

rlwrapが良い($ sudo apt-get install rlwrapでインストール).rlwrapでラップして起動すると,↑でコマンドヒストリの参照ができたり,C-aやC-eでカーソル移動したりといつもの操作ができるようになる.入力履歴はファイルに記録されるため再起動してもコマンド履歴を参照できるようになる.

さらに-fオプションで辞書も定義でき,補完が使えるようにもなる.rlwrap_extというsqlplus用の辞書が既にある.がっつり使う気もないから,基本コマンドの定義であるsqlplusファイルのみを辞書として利用(辞書は複数使うことができる).

最終的なエイリアスは以下(-pRedはプロンプトに色をつけるオプション).

alias sqlplus="rlwrap -pRed -f /usr/local/share/rlwrap/completions/sqlplus sqlplus"