ここではOracleのSYS_CONTEXT関数を使ってサーバーの情報を取得する方法について紹介します。
SYS_CONTEXT関数
SYS_CONTEXT関数は、第2引数に指定したパラメータにより、データベース名や接続中のクライアントのマシン名などのサーバー情報を取得することができます。
構文
SYS_CONTEXT('USERENV', {パラメータ})
以下はSYS_CONTEXT関数のパラメータに「DB_NAME」を指定してデータベース名を取得する例です。
SELECT SYS_CONTEXT('USERENV', 'DB_NAME') FROM DUAL;
SYS_CONTEXT('USERENV','DB_NAME')
|
以下はSYS_CONTEXT関数のパラメータに「NLS_SORT」を指定してソート基準を取得する例です。
SELECT SYS_CONTEXT('USERENV', 'NLS_SORT') FROM DUAL;
SYS_CONTEXT('USERENV','NLS_SORT')
|
以下は主要なSYS_CONTEXT関数のパラメータです。
パラメータ | 説明 |
---|---|
CURRENT_SCHEMA | 現在アクティブなデフォルトのスキーマの名前。 |
CURRENT_SCHEMAID | 現在アクティブなデフォルトのスキーマの識別子。 |
CURRENT_USER | 現在アクティブな権限を持つデータベース・ユーザー名。 |
CURRENT_USERID | 権限が現在アクティブになっているデータベース・ユーザーの識別子。 |
DB_DOMAIN | DB_DOMAIN初期化パラメータで指定されたデータベースのドメインを戻します。 |
DB_NAME | DB_NAME初期化パラメータで指定されたデータベース名を戻します。 |
DB_UNIQUE_NAME | DB_UNIQUE_NAME初期化パラメータで指定されたデータベース名を戻します。 |
HOST | 接続中のクライアントのホスト・マシン名を戻します。 |
INSTANCE | 現行のインスタンスのインスタンス識別番号を戻します。 |
IP_ADDRESS | 接続中のクライアントのマシンのIPアドレスを戻します。 |
ISDBA | オペレーティング・システムまたはパスワード・ファイルによって、ユーザーがDBA権限を持っていると認証された場合、TRUEを戻します。 |
LANG | 言語名の略称を戻します。これは、既存の’LANGUAGE’パラメータを短縮したものです。 |
LANGUAGE | 現行のセッションで使用している言語(language)および地域(territory)を、データベース・キャラクタ・セット(character set)も含めて次の書式で戻します。 |
NLS_CALENDAR | 現行のセッションの現行のカレンダを戻します。 |
NLS_CURRENCY | 現行のセッションの通貨を戻します。 |
NLS_DATE_FORMAT | セッションの日付書式を戻します。 |
NLS_DATE_LANGUAGE | 日付の表示に使用される言語を戻します。 |
NLS_SORT | BINARYまたは言語ソート基準を戻します。 |
NLS_TERRITORY | 現行のセッションの地域を戻します。 |
OS_USER | データベース・セッションを開始するクライアント・プロセスのオペレーティング・システム・ユーザー名を戻します。 |
SERVER_HOST | インスタンスを実行しているマシンのホスト名。 |
SESSION_USER | ログオン時のデータベース・ユーザーの名前。エンタープライズ・ユーザーの場合、スキーマを戻します。その他のユーザーの場合、データベース・ユーザー名を戻します。この値は、セッションの存続期間中は同じです。 |
SESSION_USERID | ログオン時のデータベース・ユーザーの識別子。 |
SESSIONID | 監査セッション識別子を戻します。この属性を分散SQL文で使用することはできません。 |
SID | セッションID。 |
TERMINAL | 現行のセッションのクライアントに対するオペレーティング・システムの識別子を戻します。 |
以上、OracleのSYS_CONTEXT関数を使ってサーバー情報を取得する方法について解説しました。