COMPARE_FILE 表関数

COMPARE_FILE 表関数は、SQL 表、物理ファイル、およびソース物理ファイルを含む、指定されたファイル間の差異を戻します。

比較属性または比較データパラメーターの少なくとも 1 つに値 YES または QUICK を指定する必要があります。

属性を比較すると、ファイル間で異なる属性ごとに 1 行が返されます。

データを比較すると、ファイル間で異なるデータの行ごとに 1 行が返されます。 行を識別するために、相対レコード番号 (RRN) が返されます。 定義に大きな違いが検出された複数のメンバーがあるファイル (パーティション表およびソース物理ファイルを含む) は、データ比較には不適格です。 すべてのメンバー名が一致しなければなりません。 データ比較が実行されなかったことを示す結果行が返されます。

クイック比較が要求された場合、差異が検出されると 1 行が返されます。 差分の完全なリストが返されないため、この比較オプションの方が高速です。

違いが見つからない場合、行は返されません。

許可: 呼び出し側は以下を備えている必要があります。
  • ファイルが入っているライブラリーに対する *EXECUTE 権限、および
  • ファイルに対する *OBJOPR および *READ 権限。

呼び出し側は、ファイルのオブジェクト監査属性を比較するために、*ALLOBJ または *AUDIT 特殊権限を持っている必要があります。 呼び出し側がこの権限を持っていない場合、この値の違いは報告されません。

NONE 以外の並列度の値を指定するには、ステートメントの権限 ID が保持する特権に *JOBCTL 特殊権限が含まれているか、QIBM_DB_SQLADM 関数が使用されている必要があります。

構文図を読むビジュアル構文図をスキップ COMPARE_FILE ( LIBRARY1 =>  library1 , FILE1 =>  file1 ,LIBRARY2 =>  library2 , FILE2 =>  file2 ,RDB2 => rdb2,コンポーネントの属性 => 比較属性,Compare_Data => 比較データ,PARALLEL_DEGREE => 並列度 )
スキーマは QSYS2 です。
library1
file1 を含むライブラリーを識別する文字ストリング式またはグラフィック・ストリング式。 これは現行サーバー上に存在しなければならず、QTEMP にすることはできません。
file1
比較する最初のファイルを識別する文字ストリング式またはグラフィック・ストリング式。 これはファイルのシステム名でなければなりません。
library2
file2 を含むライブラリーを識別する文字ストリング式またはグラフィック・ストリング式。 これは、rdb2 によって暗黙的または明示的に識別されるサーバー上に存在する必要があり、QTEMP にはなりません。
library2 を省略すると、library 1 が使用されます。
file2
比較する 2 番目のファイルを識別する文字ストリング式またはグラフィック・ストリング式。 これはファイルのシステム名でなければなりません。 2 つのファイルを同じファイル・オブジェクトにすることはできません。
file2 を省略すると、file1 が使用されます。
rdb2
library2 が存在するリレーショナル・データベースを識別する文字ストリング式またはグラフィック・ストリング式。 このパラメーターを省略する場合は、library2 が現行サーバー上に存在している必要があります。
比較属性
ファイルの属性を比較するかどうかを示す文字ストリング式またはグラフィック・ストリング式。
NO
ファイルの属性は比較されません。
QUICK
最初の差異が見つかるまで、ファイルの属性が比較されます。 差異が検出された場合は、単一行のみが返されます。 差分の完全なリストが返されないため、このオプションの方が高速です。
YES
ファイルのすべての属性が比較されます。 検出された相違ごとに 1 行が返されます。 これはデフォルト値。
比較データ
各行の相対レコード番号 (RRN) を含むファイルのデータを比較するかどうかを示す文字ストリング式またはグラフィック・ストリング式。
NO
ファイルのデータは比較されません。
QUICK
最初の差異が見つかるまで、ファイルのデータが比較されます。 差異が検出された場合は、単一行のみが返されます。 差分の完全なリストが返されないため、このオプションの方が高速です。
YES
ファイルのすべてのデータが比較されます。 検出された相違ごとに 1 行が返されます。 これはデフォルト値。
並列度 (parallel-degree)
ファイルの比較時に使用する並列処理の最大度合いを指定する文字ストリングまたはグラフィック・ストリング。

Db2® 対称型マルチプロセッシング (SMP) フィーチャーがインストールされていない場合、値が NONE でないと警告が出され、比較で並列処理は使用されません。

2-256
使用される並列処理の最大度合い。 並列処理を使用すると、比較がより早く完了する可能性がありますが、システム・リソースに影響を与えます。
NONE
並列処理は使用されません。 これはデフォルト値。

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

表 1. COMPARE_FILE 表関数
列名 データ・タイプ 説明
ATTRIBUTE_NAME VARGRAPHIC(512)
CCSID 1200
ファイル属性の名前、または同一ではない相対レコード番号 (RRN)。
FILE1 VARGRAPHIC(2048)
CCSID 1200
file1 の値。
FILE2 VARGRAPHIC(2048)
CCSID 1200
file2 の値。

  • TEST ライブラリーと PROD ライブラリーの間で、ファイル T1 の属性とデータを比較します。
    SELECT * FROM TABLE(QSYS2.COMPARE_FILE(
                                           LIBRARY1=>'TEST', FILE1=>'T1', 
                                           LIBRARY2=>'PROD', FILE2=>'T1'));
  • TEST ライブラリーと PROD ライブラリーの間でファイル T1 のデータを比較します。 差異が検出されるとすぐに、比較を停止します。
    SELECT * FROM TABLE(QSYS2.COMPARE_FILE(
                                           LIBRARY1=>'TEST', FILE1=>'T1', 
                                           LIBRARY2=>'PROD', FILE2=>'T1', 
                                           COMPARE_ATTRIBUTES=>'NO',
                                           COMPARE_DATA=>'QUICK'));