OracleのSqlplus実行時にカーソルキー(↑、↓)で履歴を呼び出す方法をおしえて下さい。
こんにちはユキトモです。
今回は、Oracleの実行したSQL文などを呼び出す方法を解説していきます。
履歴機能の追加
sqlplus でログイン後↑↓矢印で以前実行したコマンドが呼び出しはデフォルトでは通常できないようになっています。
呼び出しが出来た方が作業効率が上がるのでこの記事では設定方法を解説していきます。
 
追加の概要を記します。
1.利用パッケージ(readline)をインストールします。履歴機能を提供するパッケージです。
2.利用パッケージ(rlwrap)をインストールします。補完機能を提供するパッケージです。
3.sqlplusコマンドで実行できるようにエイリアスを作成します。
 
readlineのインストール状況を確認
readlineのインストール状況を確認   --readlineパッケージを確認 # rpm -qa --qf "%{name}-%{version}-%{release}.%{arch}\n" | grep readline readline-7.0-10.el8.x86_64   --筆者の環境では上記だけでは足りないので下記コマンドを実行 # yum -y install readline-devel メタデータの期限切れの最終確認: 2:46:32 時間前の 2022年01月03日 15時04分03秒 に実施しました。 依存関係が解決しました。 (略) 完了しました!   --再度確認 # rpm -qa --qf "%{name}-%{version}-%{release}.%{arch}\n" | grep readline readline-devel-7.0-10.el8.x86_64 readline-7.0-10.el8.x86_64
 
rlwapをインストールする
rlwrapをインストールするために、前提条件である epel をインストールします。
--パッケージを確認   --インストール状況確認 # rpm -qa --qf "%{name}-%{version}-%{release}.%{arch}\n" | grep epel   # rpm -qa --qf "%{name}-%{version}-%{release}.%{arch}\n" | grep rlwap --インストールされていないことが判明   下記のコマンドでダウンロードします # cd /tmp   # mkdir rlwrap   # cd rlwrap wget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/e/epel-release-9-2.el9.noarch.rpm   [root@localhost rlwrap]# ls -l -rw-r--r--. 1 root root 131428 1月 3 20:15 rlwrap-0.44-1.el8.x86_64.rpm   --epelインストール # rpm -ivh epel-release-9-2.el9.noarch.rpm   epelを常時利用なら1、一時的に利用なら0に設定します ls -l /etc/yum.repos.d/epel.repo [root@localhost rlwrap]# ls -l /etc/yum.repos.d/epel.repo -rw-r--r--. 1 root root 1453 12月 2 07:55 /etc/yum.repos.d/epel.repo vi /etc/yum.repos.d/epel.repo [epel] (略) enabled=1   --rlwrapを下記URLからダウンロードします。 wget https://download-ib01.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/r/rlwrap-0.44-1.el8.x86_64.rpm   --rlwrapをインストールする # rpm -ivh rlwrap-0.44-1.el8.x86_64.rpm 警告: rlwrap-0.44-1.el8.x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID 2f86d6a1: NOKEY Verifying... ################################# [100%] 準備しています... ################################# [100%] 更新中 / インストール中... 1:rlwrap-0.44-1.el8 ################################# [100%]   --ログイン確認 # su - oracle $ /usr/bin/rlwrap -pRed sqlplus /nolog SQL*Plus: Release 19.0.0.0.0 - Production on 月 1月 3 20:24:30 2022 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. SQL> conn / as sysdba 接続されました。 SQL> exit   --パスを設定する --rlwrapコマンドは筆者の環境では /usr/bin/rlwrap にあるので、.bash_profileに下記を追加しました。   vi .bash_profile export PATH=$PATH:/usr/bin   --エイリアスを設定する --.bashrc に下記を追加します。   vi .bash_profile alias sqlplus='rlwrap -pRed /opt/oracle/product/19c/dbhome_1/bin/sqlplus'   設定値を反映する $ source .bash_profile $ source .bashrc   --sqlplusでログイン確認する $ sqlplus / as sysdba SQL>
「SQL> 」プロンプトが赤色になっており、↑↓矢印でコマンドの履歴が表示されることが確認出来たら設定は完了です。
 
色を付けたくない場合は -pRed オプションを外して設定して下さい。
alias sqlplus='rlwrap /opt/oracle/product/19c/dbhome_1/bin/sqlplus'
以上です。