Oracle:接続先情報の表示
客先でOracleを使う際テスト系と本番系があって、接続先間違えていないかヒヤヒヤする。
そこでSQL*Plus起動時に接続先を表示できると便利。
SQL*Plusにはユーザー・プロファイルという起動時に実行されるファイルがあり、ここにSQLを記載することで自動的に実行できる仕組みがある。
・グローバル起動ファイルであるGLOGIN.SQL
・ローカルおよび個人で使用するよう設計されているLOGIN.SQL
GLOGIN.SQL → LOGIN.SQLの順番に読み込まれる
GLOGIN.SQLは $ORACLE_HOME\sqlplus\admin フォルダ
LOGIN.SQLは 環境変数 SQLPATH で指定したフォルダ
に配置する。
GLOGIN.SQLは標準でファイルが存在しているので、そこに追記するかバックアップしてから新たに記述すれば良いだろう。
GLOGIN.SQLとLOGIN.SQLの違いが微妙だが、Windowsの場合だとSQLPATH環境変数をユーザー環境変数として作成し、ログインユーザーごとに設定が分けれる、ということだと思われる。
sqlとしてはこんな感じ?
そこでSQL*Plus起動時に接続先を表示できると便利。
SQL*Plusにはユーザー・プロファイルという起動時に実行されるファイルがあり、ここにSQLを記載することで自動的に実行できる仕組みがある。
・グローバル起動ファイルであるGLOGIN.SQL
・ローカルおよび個人で使用するよう設計されているLOGIN.SQL
GLOGIN.SQL → LOGIN.SQLの順番に読み込まれる
GLOGIN.SQLは $ORACLE_HOME\sqlplus\admin フォルダ
LOGIN.SQLは 環境変数 SQLPATH で指定したフォルダ
に配置する。
GLOGIN.SQLは標準でファイルが存在しているので、そこに追記するかバックアップしてから新たに記述すれば良いだろう。
GLOGIN.SQLとLOGIN.SQLの違いが微妙だが、Windowsの場合だとSQLPATH環境変数をユーザー環境変数として作成し、ログインユーザーごとに設定が分けれる、ということだと思われる。
sqlとしてはこんな感じ?
column username format A10
column instance format A10
column server_host format A10
select sys_context('userenv','session_user') username, sys_context('userenv','instance_name') instance, sys_context('userenv','server_host') host from dual;
ついでにユーザー名を接続識別子をプロンプトに設定
set sqlprompt "_user'@'_connect_identifier> "
他に本番系に接続時に「!!注意!!」的な表示させることもできそうだが、あまりこだわると間違えて表示されずに注意を怠ってしまう、という逆効果にもなり得るのでこの程度の表示で良いのではと思うOracle





