RELATED_OBJECTS 表関数

RELATED_OBJECTS 表関数は、指定されたデータベース・ファイルに直接または間接的に依存するすべてのオブジェクトのリストを戻します。

リストには、入力データベース・ファイルに直接従属するすべてのオブジェクトが含まれます。 識別された各ビューおよびグローバル変数は、従属が検出されなくなるまで、再帰的に処理され、従属が取得されます。

入力ファイルが SQL 別名、プログラム記述ファイル、またはファイルが見つからない場合は、行は戻されません。

依存関係情報は、データベース相互参照表および SQL カタログから収集されます。 元のステートメントで従属オブジェクトがどのように指定されたかによっては、一部の依存関係が返されない場合があります。 例えば、CREATE FUNCTION ステートメントが非修飾表を参照する場合、従属関係は SQL カタログ・ビュー (SYSROUTINEDEP) では完全ではなく、その後この関数によって戻されることはありません。

許可: 以下の注を参照してください。

構文図を読むビジュアル構文図をスキップ RELATED_OBJECTS ( LIBRARY_NAME =>  ライブラリー名 , FILE_NAME =>  ファイル名 )
スキーマは SYSTOOLS です。
ライブラリー名
ファイル名を含むライブラリーを識別する文字ストリング式またはグラフィック・ストリング式。 現行サーバー上に存在している必要があります。
ファイル名
関連オブジェクトをリストするデータベース・ファイルを識別する文字ストリング式またはグラフィック・ストリング式。 これはファイルのシステム名でなければなりません。

この関数の結果は、以下の表に示された形式の行を含むテーブルです。 列はすべて NULL 可能です。

表 1. RELATED_OBJECTS 表関数
列名 データ・タイプ 説明
SOURCE_SCHEMA_NAME VARCHAR(128) SOURCE_SQL_NAME が入っているスキーマの名前。
SOURCE_SQL_NAME VARCHAR(128) この行が従属しているオブジェクトの名前です。
SQL_OBJECT_TYPE VARCHAR(24) 従属オブジェクトの SQL タイプです。
ALIAS
SOURCE_SQL_NAME に定義された SQL 別名
FOREIGN KEY
SOURCE_SQL_NAME を指定した参照制約内の子表
FUNCTION
SOURCE_SQL_NAME を参照する関数
HISTORY TABLE
SOURCE_SQL_NAME で定義されたテンポラル表に関連付けられた履歴表
INDEX
SOURCE_SQL_NAME で定義された SQL 索引
キーのある論理ファイル
SOURCE_SQL_NAME に定義されたネイティブ・キー付き論理ファイル
論理ファイル
SOURCE_SQL_NAME に定義されたネイティブ論理ファイル
MASK
SOURCE_SQL_NAME の列に対する列マスク、またはその定義で SOURCE_SQL_NAME を参照する列マスク
MATERIALIZED QUERY TABLE
SOURCE_SQL_NAME を参照するマテリアライズ照会表
PERMISSION
SOURCE_SQL_NAME で定義されている行の許可、またはその定義で SOURCE_SQL_NAME を参照する行の許可
プロシージャー
SOURCE_SQL_NAME を参照するプロシージャー
TEXT INDEX
SOURCE_SQL_NAME に基づいて作成された OmniFind テキスト索引
TRIGGER
SOURCE_SQL_NAME で定義されているか、またはその定義で SOURCE_SQL_NAME を参照する SQL トリガー
VARIABLE
デフォルト式で SOURCE_SQL_NAME を参照するグローバル変数
表示
定義内で SOURCE_SQL_NAME を参照するビュー
XML SCHEMA
SOURCE_SQL_NAME を使用する XML スキーマ
SCHEMA_NAME VARCHAR(128) SQL_NAME を含む SQL スキーマ。
SQL_NAME VARCHAR(128) 従属オブジェクトの SQL 名です。
  • SQL_OBJECT_TYPE が FOREIGN KEY の場合、これは子表の名前です。
LIBRARY_NAME VARCHAR(10) 従属オブジェクトのシステム・ライブラリー名。
  • SQL_OBJECT_TYPE が TRIGGER の場合、トリガー・プログラムが入っているライブラリー

SQL_OBJECT_TYPE が FOREIGN KEY、FUNCTION、PROCEDURE、および TEXT INDEX の場合は、NULL 値が入ります。

SYSTEM_NAME VARCHAR(279) 従属オブジェクトの関連するシステム名。
  • SQL_OBJECT_TYPE が FOREIGN KEY の場合、制約名
  • SQL_OBJECT_TYPE が FUNCTION または PROCEDURE の場合、外部名
  • SQL_OBJECT_TYPE が MASK または PERMISSION の場合、マスクまたは許可名
  • SQL_OBJECT_TYPE が TRIGGER の場合、トリガー・プログラムの名前

SQL_OBJECT_TYPE が TEXT INDEX の場合は、NULL 値が入ります。

OBJECT_OWNER VARCHAR(10) オブジェクトの所有者 SQL_OBJECT_TYPE が FUNCTION、MASK、PERMISSION、PROCEDURE、TRIGGER、または VARIABLE の場合、これはオブジェクトの定義者です。

SQL_OBJECT_TYPE が FOREIGN KEY または TEXT INDEX の場合は、NULL 値が入ります。

LONG_COMMENT VARGRAPHIC(2000) CCSID 1200 オブジェクトの SQL ロング・コメント。

コメントが使用できない場合は、NULL 値が入ります。

OBJECT_TEXT VARGRAPHIC(50) CCSID 1200 オブジェクトのシステム・テキスト記述。

テキストが使用できない場合は、NULL 値が入ります。

LAST_ALTERED TIMESTAMP オブジェクトが最後に変更されたときのタイム・スタンプ。 変更できないオブジェクトの場合、これは作成タイム・スタンプです。

SQL_OBJECT_TYPE が FOREIGN KEY の場合は、NULL 値が入ります。

注記

このプロシージャーは、SQL 関数を使用して従属情報を見つけるために SQL カタログを使用する方法の例として、SYSTOOLS スキーマに用意されています。 他の Db2® for i 提供ツールと同様に、SQL ソースを抽出して、類似の関数を作成するためのモデルとして使用したり、ユーザー指定のスキーマ内にカスタマイズしたバージョンを作成するために使用したりすることができます。

SYSTOOLS で提供されるサービスには、サービスの実装に使用されるインターフェースによって決定される許可要件があります。 権限要件を理解するには、サービスの SQL を抽出し、実装を調べます。

  • APPLIB 内の ORDERS ファイルに従属するすべてのオブジェクトをリストします。
    SELECT * FROM TABLE(SYSTOOLS.RELATED_OBJECTS(
                                           LIBRARY_NAME=>'APPLIB', 
                                           FILE_NAME =>'ORDERS'));
  • APPLIB 内の ORDERS ファイルに従属するすべてのオブジェクトをリストします。 オブジェクトごとに、オブジェクトを検索するために必要な再帰的ステップの数を返します。
    SELECT LEVEL, RO.* 
      FROM (VALUES('APPLIB', 'ORDERS')) I(IN_LIB, IN_FILE), 
            TABLE (QSYS2.OBJECT_STATISTICS(IN_LIB, '*FILE', IN_FILE)),
            TABLE(SYSTOOLS.RELATED_OBJECTS(IN_LIB, IN_FILE)) RO
      START WITH SOURCE_SCHEMA_NAME = OBJLONGSCHEMA AND  
                 SOURCE_SQL_NAME = OBJLONGNAME
      CONNECT BY SOURCE_SQL_NAME = PRIOR SQL_NAME AND
                 SOURCE_SCHEMA_NAME = PRIOR SCHEMA_NAME
      ORDER BY 1, 2, 3;