MON_GET_SECTION_ROUTINE 表関数 - 入力セクションのルーチンのリストの取得

MON_GET_SECTION_ROUTINE 表関数は、入力セクションの実行中に呼び出される可能性のあるすべてのプロシージャー、外部関数、コンパイル済み関数、およびコンパイル済みトリガーのリストを返します。

許可

以下のいずれかの権限が必要です。
  • ルーチンに対する EXECUTE 特権
  • DATAACCESS 権限
  • SQLADM 権限
  • DBADM 権限

デフォルトの PUBLIC 特権

なし

構文

Read syntax diagramSkip visual syntax diagramMON_GET_SECTION_ROUTINE(executable_id )

スキーマは SYSPROC です。

ルーチン・パラメーター

実行可能 ID
どのセクションについてルーチンのリストを返すかをユニークに識別する、タイプ VARCHAR(32) FOR BIT DATA の入力パラメーター。 この引数が NULL または空ストリングである場合、あるいはセクションがメモリー内に見つからない場合は、SQL0171 が返されます。

戻される情報

使用上の注意

入力セクションは、パッケージ・キャッシュ内になければなりません。

この関数によって返されるオブジェクトは、必ずしも入力セクションの実行時に呼び出されるとは限りません。 例えば、次の SELECT ステートメントで、ステートメント FUNCTION1 はコンパイル済み関数です。
	SELECT CASE WHEN COL1 = 0 THEN FUNCTION1() ELSE NULL END AS T1 FROM TABLE1
MON_GET_SECTION_ROUTINE 表関数は、引数として渡された executable_id がこのステートメントのセクションを識別している場合に、FUNCTION1 関数の行を返します。 しかし、このステートメントの実行時に FUNCTION1 が呼び出されるのは、TABLE1 のいずれかの行で COL1 の値が 0 になっている場合のみです。

  1. 実行可能 ID x'0100000000000000520100000000000001000000010020120822205618607103' を持つパッケージ・キャッシュ内のセクションによって実行される可能性のあるすべてのルーチンをリストします。
    SELECT * FROM 
       TABLE(MON_GET_SECTION_ROUTINE(
          x'0100000000000000520100000000000001000000010020120822205618607103'))
       AS T
    戻り値
    ROUTINE_TYPE ROUTINE_SCHEMA  ROUTINE_MODULE_NAME ROUTINE_NAME  ...
    ------------ --------------- ------------------- ------------ ...
               F SPEEDY          TANKS               ANALYZE_LOG1 ...
               P SPEEDY          TANKS               POST_PROCESS ...
      2 record(s) selected.
  2. 実行可能 ID x'0100000000000000520100000000000001000000010020120822205618607103' を持つ INSERT ステートメントが長時間に渡って実行されていることにユーザーが気付きます。 次のステートメントを実行して、その INSERT の実行中にコンパイル済みトリガーが呼び出されたかどうかを確認します。
    SELECT * FROM 
       TABLE(MON_GET_SECTION_ROUTINE(
          x'0100000000000000520100000000000001000000010020120822205618607103')) 
       AS T WHERE ROUTINETYPE = 'T'
    戻り値
    ROUTINE_TYPE ROUTINE_SCHEMA ROUTINE_MODULE_NAME ROUTINE_NAME        ...
    ------------ -------------- ------------------- ------------------ ...
               T MIKE                               INVALID_WELD_VALUE ...
               P MIKE                               INSERT_WELD_SPECS  ...
      2 record(s) selected.
  3. 実行可能 ID x'0100000000000000520100000000000001000000010020120822205618607103' を持つ無名ブロックについて内部スキーマとプロシージャー名を調べます。
    SELECT ROUTINESCHEMA, ROUTINENAME, SPECIFICNAME 
       FROM TABLE(MON_GET_SECTION_ROUTINE(
          x'0100000000000000520100000000000001000000010020120822205618607103')) 
       AS T
    戻り値
    ROUTINE_SCHEMA  ROUTINE_NAME       SPECIFIC_NAME       ...
    --------------- ------------------ ------------------ ...
    GSOSCHEMA       PING_RUBBLE        SQL120801135351900 ...
      1 record(s) selected.