EXPLAIN_GET_MSGS 表関数

EXPLAIN_GET_MSGS 表関数は、EXPLAIN_DIAGNOSTIC および EXPLAIN_DIAGNOSTIC_DATA Explain 表を照会し、定様式メッセージを戻します。

構文

構文図を読む構文図をスキップするEXPLAIN_GET_MSGS(explain-requester,explain-time,source-name,source-schema,source-version,explain-level,stmtno,sectno,locale)

スキーマは 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 に付与されます。

戻される情報

表 1. EXPLAIN_GET_MSGS 表関数によって戻される情報
列名 データ・タイプ 説明
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".