EXPLAIN_GET_MSGS 表関数
EXPLAIN_GET_MSGS 表関数は、EXPLAIN_DIAGNOSTIC および EXPLAIN_DIAGNOSTIC_DATA Explain 表を照会し、定様式メッセージを戻します。
構文
スキーマは Explain 表スキーマと同じです。
表関数パラメーター
以下の入力引数はいずれもヌルにすることができます。 引数がヌルの場合、その引数は照会を制限するためには使用されません。
- explain-requester
- この Explain 要求のイニシエーターの許可 ID を指定する、タイプ VARCHAR(128) の入力引数。 NULL 値であれば、このパラメーターは照会の検索条件から除外されます。
- explain-time
- Explain 要求の開始時刻を指定する、タイプ TIMESTAMP の入力引数。 NULL 値であれば、このパラメーターは照会の検索条件から除外されます。
- source-name
- 動的ステートメントの Explain 実行時に実行されるパッケージの名前、または静的 SQL ステートメントの Explain 実行時のソース・ファイルの名前を指定する、タイプ VARCHAR(128) の入力引数。 NULL 値であれば、このパラメーターは照会の検索条件から除外されます。
- source-schema
- Explain 要求のソースのスキーマ、または修飾子を指定する、タイプ VARCHAR(128) の入力引数。 NULL 値であれば、このパラメーターは照会の検索条件から除外されます。
- source-version
- Explain 要求のソースのバージョンを指定する、タイプ VARCHAR(64) の入力引数。 NULL 値であれば、このパラメーターは照会の検索条件から除外されます。
- explain-level
- この行が関係する Explain 情報のレベルを指定する、タイプ CHAR(1) 入力引数。 NULL 値であれば、このパラメーターは照会の検索条件から除外されます。
- stmtno
- この Explain 情報が関連付けられるパッケージ内のステートメント番号を指定する、タイプ INTEGER の入力引数。 NULL 値であれば、このパラメーターは照会の検索条件から除外されます。
- sectno
- この Explain 情報が関連付けられるパッケージ内のセクション番号を指定する、タイプ INTEGER の入力引数。 NULL 値であれば、このパラメーターは照会の検索条件から除外されます。
- locale
- 戻されるメッセージのロケールを指定する、タイプ VARCHAR(33) の入力引数。 指定したロケールがデータベース・サーバーにインストールされていない場合、値は無視されます。
許可
このルーチンを実行するには、以下のいずれかの権限が必要です。
- ルーチンに対する EXECUTE 特権
- DATAACCESS 権限
- DBADM 権限
- SQLADM 権限
- EXPLAIN 権限
デフォルトの PUBLIC 特権
制限のないデータベースでは、この関数が自動的に作成されると、EXECUTE 特権が PUBLIC に付与されます。
戻される情報
| 列名 | データ・タイプ | 説明 |
|---|---|---|
| EXPLAIN_REQUESTER | VARCHAR(128) | この Explain 要求のイニシエーターの許可 ID。 |
| EXPLAIN_TIME | TIMESTAMP | Explain 要求の開始時刻。 |
| SOURCE_NAME | VARCHAR(128) | 動的ステートメントの Explain 実行時に実行されるパッケージの名前、または静的 SQL ステートメントの Explain 実行時のソース・ファイルの名前。 |
| SOURCE_SCHEMA | VARCHAR(128) | Explain 要求のソースのスキーマまたは修飾子。 |
| SOURCE_VERSION | VARCHAR(64) | Explain 要求のソースのバージョン。 |
| EXPLAIN_LEVEL | CHAR(1) | この行に関連する Explain 情報のレベル。 |
| STMTNO | INTEGER | この Explain 情報が関連付けられるパッケージ内のステートメント番号。 |
| SECTNO | INTEGER | この Explain 情報が関連付けられるパッケージ内のセクション番号。 |
| DIAGNOSTIC_ID | INTEGER | EXPLAIN_STATEMENT 表内の特定のステートメントのインスタンスの診断 ID。 |
| LOCALE | VARCHAR(33) | 戻されるメッセージのロケール。 このロケールは、指定のロケールがデータベース・サーバーにインストールされていない場合、指定のロケールとは一致しません。 |
| MSG | VARCHAR(4096) | 定様式メッセージ・テキスト。 |
例
過去 1 時間に生成された、リクエスター SIMMEN のデフォルト・スキーマの Explain 表から、定様式の英語のメッセージを要求します。
SQLC2E03 のソース名を指定します。
SELECT MSG
FROM TABLE(EXPLAIN_GET_MSGS(
'SIMMEN',
CAST(NULL AS TIMESTAMP),
'SQLC2E03',
CAST(NULL AS VARCHAR(128)),
CAST(NULL AS VARCHAR(64)),
CAST(NULL AS CHAR(1)),
CAST(NULL AS INTEGER),
CAST(NULL AS INTEGER),
'en_US'))
AS REGISTRYINFO
WHERE EXPLAIN_TIME >= (CURRENT TIMESTAMP - 1 HOUR)
ORDER BY DIAGNOSTIC_ID 以下はこの照会の出力例です。
MSG
------------------------------------------------------------------------
EXP0012W Invalid access request. The index "index1" could not be found.
Line number "554", character number "20".
EXP0012W Invalid access request. The index "index2" could not be found.
Line number "573", character number "20".
EXP0015W Invalid join request. Join refers to tables that are not in
the same FROM clause. Line number "573", character number "20".