Oracle Database 19cのsqlplusにヒストリー機能や入力補完機能を追加

Facebooktwittermail

RHEL 8にOracle Database 19cをインストールして勉強しています。

RHEL8にRPM PackageのOracle Database 19cをインストール

今回の一連の作業でsqlplusを起動してからのSQL文の入力が面倒で、テキストエディタからのコピー&ペーストでやっていました。



そもそもSQL文が書けない老眼SEですが…(泣

補完機能までは出来なくてもカーソルキーでヒストリーがでてくれば、少しは効率が上がるのに。
第5回 SQL*Plusを使いやすくする
https://www.intellilink.co.jp/article/column/oracle-yam05.html

有難う御座います。本当に助かります。

環境
・Red Hat Enterprise Linux release 8.5 (Ootpa)
・Kernel 4.18.0-348.7.1.el8_5.x86_64
・oracle-database-preinstall-19c-1.0-3.el7.x86_64.rpm
・oracle-database-ee-19c-1.0-1.x86_64.rpm
・開発環境、GNOME環境、日本語入力インストール
・Subscription登録

以下、作業でdnfコマンドを実行するとエラーになるかもしれません。
おそらくoracle repositoryと競合している可能性が高いので、その場合はoracle repositoryを無効にしてみて下さい。

  1. rlwrapのインストール
  2. rlwrapをインストールするにはEPEL repositoryが必要ですが、EPELをインストールするにはcodeready-builder-for-rhel-8-x86_64-rpmsが必要になります。

    What’s EPEL, and how do I use it?
    https://www.redhat.com/en/blog/whats-epel-and-how-do-i-use-it

    1. codeready-builder-for-rhel-8-x86_64-rpmsの有効化
    2. EPEL repositoryのインストール
    3. rlwrapのインストール
  3. rlwrap-extensionsのインストール
  4. rlwrap-extensionsをダウンロードして所定の場所に設置します。
    rlwrap_ext
    http://www.linuxification.at/rlwrap_ext.html.en
    Oracle Version 12.1.0.2用までしか無いのでこれをダウンロードしました。
    基本的なコマンドは変わらないと期待して。

    設置は/usr/share/rlwrap/completionsになります。

  5. sql+, asm+をコピー
  6. sql+, asm+をPATHの通っている場所にコピーします。/usr/loca/binにコピーしました。

  7. 確認
  8. oracleユーザで確認してみます。
    あら!? /usr/local/share/rlwrap/completions/sqlplusが無いと。

  9. シンボリックリンクの作成
  10. 再度確認
  11. カーソルキーやTABでの入力補完機能が使えました。

    aliasを設定してもいいかも。

【追記】
あとで気づいたのですがsql+ はスクリプトなので確認したら記述がありました。
スクリプトを修正した方がいいですね。

【さらに追記】
こちらは補完機能はありませんでした。
rlwrap for Command Line History and Editing in SQL*Plus and RMAN on Linux
https://oracle-base.com/articles/linux/rlwrap

Leave a Reply