Oracle

Oracle【SQL*Plus】コマンド履歴の設定方法を解説


 

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'

以上です。

-Oracle
-, , ,