login.sql と glogin.sql

SQL*Plus 接続時に実行されるコマンドファイルで、サイトプロファイル用の
glogin.sql と、ユーザプロファイル用の login.sql の2種類ある。



プロファイル

ここで言うサイトとは DB サーバ 、ユーザとは OS ユーザ を示している。
共用したければ glogin.sql 、個別に定義したければ login.sql とすればよい。

login.sql は手動でファイルを作成する必要があるが、
glogin.sql は$ORACLE_HOME/sqlplus/admin に存在する。

中身はコメント文だけで、デフォルトで何かしらの定義がされているわけではない。

両ファイルが存在する場合、ユーザ用の login.sql が優先され glogin.sql は読込まれない。
※ もし存在しなければ glogin.sql が読込まれる。

login.sql はカレントディレクトリになければ、環境変数 SQLPATH のパスが検索される。

ユーザプロファイルの作成

ではここで、ユーザプロファイルを作成してみる。

% vi login.sql

【補足】vi の簡単な手順

1) i キーを押下して編集開始。
2) 任意のコマンドを入力。(この例ではインスタンス名が表示させる)

    select instance_name from v$instance;

3) Esc キーを押下して編集終了。
4) :wq! を入力して保存。
5) cat コマンドなどで、作成されたファイルを確認。

    % cat login.sql
    select instance_name from v$instance;

login.sql を作成したら、SQL*Plus で接続。

% sqlplus hoge/hoge@ORCL

INSTANCE_NAME
--------------------------------
ORCL

すると、 接続されました。 の後に定義したコマンドが
自動実行されていることが分かる。

ログインする度に毎回設定するようなコマンドがあれば、手間が省けてよい。
不要な時はファイル名をリネームしてしまえば実行されないので、無効化も簡単。

よく使われていそうなのは linesize や pagesize などの SET コマンドや、
DEFINE_EDITOR などの事前定義変数あたりかと。