SQL*Plusを起動して作業を行う際は、初めにSET~、SELECT~と毎回決まったコマンドを実行する人が多いと思います。
そういった煩わしさを解消できるのがglogin.sqlとlogin.sqlです。
glogin.sqlとlogin.sql はSQL*Plusの環境設定をサポートしてくれます。
公式マニュアル
glogin.sqlとlogin.sqlについて
glogin.sqlとlogin.sqlはSQL*Plusの起動時に書き込んだコマンドを自動実行してくれます。
以下に glogin.sqlとlogin.sql の特徴をまとめました。
プロファイル・ スクリプト | 実行タイミング | 配置場所 | 適用ユーザー |
glogin.sql (サイト・プロファイル) | SQLPLUS、CONNECTコマンドでの正常な接続時 /NOLOGが指定された場合 | $ORACLE_HOME/sqlplus/admin/glogin.sql | 全ユーザー |
login.sql (ユーザー・プロファイル) | glogin.sqlの実行後 | 環境変数ORACLE_PATH | ユーザー単位 |
glogin.sqlは $ORACLE_HOME/sqlplus/adminに存在します。
対象ユーザーはSQL*Plusを実行した全OSユーザーとなります。
login.sqlは環境変数ORACLE_PATHに指定したディレクトリ内に作成します。
対象ユーザーは環境変数ORACLE_PATHにlogin.sqlが存在するOSユーザーのみとなります。
実行タイミングとしてはglogin.sqlの後にlogin.sqlが実行されます。
今回はglogin.sqlとlogin.sqlの両方に設定を入れて動作を検証してみましょう。
■実施環境
OS:Oracle Linux 6.5
DB:Oracle Database 12c R1
glogin.sqlの設定
-glogin.sqlファイルを編集し、上書き保存します。
$ vi $ORACLE_HOME/sqlplus/admin/glogin.sql
glogin.sqlに検証として以下を追記します。
set pagesize 0
set linesize 100
select ‘——————————————-‘ from dual;
select ‘——————————————-‘ from dual;
select ‘現在、’||TO_CHAR(sysdate,’YYYY/MM/DD(DY) HH24:MI:SS ‘)||’です。’ FROM dual;
select ‘設定変更作業時は以下を実施すること!!’ from dual;
select ‘・Wチェックの実施(声だし、指差し確認)’ from dual;
select ‘・作業エビデンスの取得’ from dual;
select ‘——————————————-‘ from dual;
select ‘——————————————-‘ from dual;
set pagesize 1000
-SQL*Plusで接続し、login.sqlの内容が反映されているかを確認します。
$ sqlplus system/password@pdb1
SQL> show pagesize
SQL> show linesize
SQL*Plus接続時にglogin.sqlに記載したSELECT文の実行結果が表示されることとSETコマンドのPAGESIZE、LINESIZEが反映されていることが確認できました。
login.sqlの設定
-login.sqlファイルを作成します。
$ mkdir /home/oracle/sqlplus_config
$ vi /home/oracle/sqlplus_config/login.sql
login.sqlに検証として以下を追記します。
SET SQLPROMPT “_USER’@’_CONNECT_IDENTIFIER > “
SET LINESIZE 1000
⇒SQLPROMPTはコマンドプロンプトの表示名を変更します。
デフォルトは「SQL>」ですが上記の設定では「ユーザー名@接続識別子>」
の形式で表示されます。
-bash_profileに環境変数ORACLE_PATHを設定します。
$ vi ~/.bash_profile
以下を追記する。
export ORACLE_PATH=/home/oracle/sqlplus_config
⇒login.sqlを格納したディレクトリを指定
上書き保存でlogin.sqlを閉じたら、設定を反映させましょう。
$ source ~/.bash_profile
動作の検証
glogin.sqlとlogin.sqlの設定ができました。
SQL*Plusを起動してみましょう。
環境変数ORACLE_PATHに指定したディレクトリ内のlogin.sqlにはSET LINESIZE、SQLPROMPTを書いていますがしっかりと内容が反映されていますね。
glogin.sqlには「SET LINESIZE 100」と書き込んでいますが「SHOW LINESIZE」の出力結果にはlogin.sqlに書いた「SET LINESIZE 1000」が最終的に設定されていることがわかります。
これは冒頭で説明した通り、glogin.sql⇒login.sqlの順にファイルが読み込まれるためです。
このようにSQL*Plus起動時に実行したいコマンドをglogin.sqlまたはlogin.sqlに書き込んでおけば余計な手間を省くことができます。
作業前に必ず実行するコマンドがある場合は有効活用しましょう。
コメント