SQL 関数一覧 (O‐S) > SYS_CONTEXT、USERENV

ユーザー情報、クライアント情報、OS、IP アドレス、セッションの情報

syntax

SYS_CONTEXT ( namespace , param [, max_len] )
USERENV ( param )
return [ varchar2 ]

parameter

namespaceネームスペース
paramコンテキスト名
max_len戻す文字列の最大長default 256

return

  • 指定したネームスペース(一般的には 'USERENV')の parameter を戻す。

avail

  • SQL および PL/SQL の両方で使用可能。

ネームスペース

事前定義されている組込みネームスペース名 USERENV (関数名ではない) または、「ユーザー定義のコンテキスト・ネームスペース」

ネームスペースのコンテキスト名

USERENV ネームスペースのコンテキスト名 、または、「ユーザー定義のコンテキスト・ネームスペース」のコンテキスト名

SYS_CONTEXT 関数の内容

組み込みされた USERENV ネームスペース、または、ユーザー定義の namespace に関連付けられた コンテキスト名 param の値を VARCHAR2 型で戻す。 戻す文字列の長さが max_len を超える場合には切り捨てられる。

現行のセッションのユーザー情報をもつ USERENV という組込みネームスペースが用意されている。目的に応じたコンテキストを自前で作成することも可能。

USETENV 関数の内容

下位互換用だが SYS_CONTEXT にはない固有の特殊なパラメータもある。基本的に SYS_CONTEXT('USERENV', param ) と同じ。

特殊なパラメータとしては 現在のシステム変更番号を取得する パラメータ 'COMMITSCN' がある。
しかし、それも Oracle 9i 以降では DBMS_FLASHBACK パッケージに GET_SYSTEM_CHANGE_NUMBER という機能拡張された代替パッケージファンクションが用意されているので、あまり使われることもない。

SYS_CONTEXT 使用例

ユーザーID、ユーザー名

SQL> select SYS_CONTEXT('USERENV', 'SESSION_USERID') USER_ID,
  2         SYS_CONTEXT('USERENV', 'SESSION_USER') USER_NAME from dual;
 
USER_ID              USER_NAME
-------------------- --------------------
55                   RIVUS

クライアントのユーザー名と接続プログラム(例:Windows + SQL*Plus 利用の場合)

SQL> select SYS_CONTEXT('USERENV', 'OS_USER') OS_USERNAME,
  2         SYS_CONTEXT('USERENV', 'MODULE') USR_PROCESS from dual;
 
OS_USERNAME          USR_PROCESS
-------------------- --------------------
WINDOWS-X259\rivus   SQL*Plus

HOSTNAME、IP アドレス(Oracle NET 接続している場合のみ)

SQL> select SYS_CONTEXT('USERENV', 'HOST') C_HOST,
  2         SYS_CONTEXT('USERENV', 'IP_ADDRESS') C_IP from dual;
 
C_HOST                 C_IP
---------------------- --------------------
WORKGROUP\WINDOWS-X259 192.168.*.*


SQL 関数 - SYS_CONTEXT,USERENV 関連

 
アルファベット別 関数一覧 ショートカット
ABCDEFG
HILMNOP
RSTUVWX
日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ オラクルサポートセンター