現在のセッション情報を取得する方法

この記事では現在のセッションの情報を取得する方法について解説します。

 SYS_CONTEXT関数とは

DB接続時にユーザ名の確認などで現在のセッション情報を取得したい場合があると思います。

現在のセッション情報の確認は「SYS_CONTEXT」関数とネームスペース「USERENV」を組み合わせることで確認できます。

SYS_CONTEXT関数は以下のように使用します。

SYS_CONTEXT ('namespace','parameter')


 USERENVネームスペースとは

USERENVは現在のセッション情報を取得するためのネームスペースです。

SYS_CONTEXT関数のnamespaceにUSERENVを指定することでセッション情報を取得することができます。


 USERENVのパラメータ

USERENVで使用できるパラメータは以下のようなものがあります。

・SID:セッションID

・SESSION_USER:セッションユーザ名

・CON_NAME:接続DB名

・INSTANCE_NAME:接続インスタンス名

・NLS_DATE_FORMAT:日付書式


 確認例

現在のセッションユーザ名を確認します。

SQL> SELECT SYS_CONTEXT ('USERENV', 'SESSION_USER') FROM DUAL;
  
SYS_CONTEXT('USERENV','SESSION_USER')
-----------------------------------------------------------------
TEST

パラメータの値を変更すると各種情報を同様に確認できます。