5.5.5 全表抽出定義文
抽出側DBの全実表をデータ連動の対象とし,連動対象外とする表を定義します。
- 〈この項の構成〉
(1) 形式
extract_all 〔except 認可識別子.表識別子 {{, 認可識別子.表識別子}}…〕
(2) オペランドの説明
-
extract_all句を指定すると,抽出側DBの全実表の全列が抽出対象となります。抽出側DBのすべての表を同一構成で反映側へ連動する場合,extract_all句を使用すると抽出定義の記載を簡略化できます。
extract_all句を指定する場合,更新情報名とマッピングキーは次のように決定します。
-
更新情報名
抽出対象表に対応する更新情報名をDatareplicatorで作成します。作成する更新情報名は,ALLxxxxx(xxxxxは5桁の通番)となります。このため,反映側のエラーメッセージに出力された更新情報名から,エラーの対象となる表などを特定できない場合があります。その場合,hdsrefinfmコマンドで抽出定義情報を出力して,更新情報名やマッピングキーに対応する表と列の情報を確認します。
-
マッピングキー
マッピングキーに該当する列は,各表に定義されたユニークインデクスの構成列とします。マッピングキーに使用するユニークインデクスは,hdeprepコマンドの-kオプションの指定値から次の表のとおりに決定します。-kオプションにnoneを指定した場合は,KFRB04587-Eメッセージを出力してエラー終了します。マッピングキーに使用できるユニークインデクスが定義されていない表は抽出対象外としKFRB04583-Wを出力します。
マッピングキーに該当する列は更新できます。
表5‒14 マッピングキーのユニーク条件とインデクス条件 hdeprepコマンドの-kオプション指定値
マッピングキーに使用するインデクス
インデクス種別と優先順
インデクス構成列の条件
not null unique
又は省略
下記インデクスの内,インデクス構成列の条件を満たすものを1〜3の優先順で決定します。
-
ユニーククラスタインデクス
-
主キーインデクス
-
ユニークインデクス(インデクスIDが小さい順)
-
すべての列が,マッピングキーとして使用できるデータ型及びデータ長(「4.3.3(1) 抽出側DBがHiRDBの場合のマッピングキー」参照)であること。
すべての列がNOT NULL属性であること。
unique
すべての列が,マッピングキーとして使用できるデータ型及びデータ長(「4.3.3(1) 抽出側DBがHiRDBの場合のマッピングキー」参照)であること。
-
-
-
except 認可識別子.表識別子 {{, 認可識別子.表識別子}}…
extract_all句を指定する場合に,抽出対象外とする表を指定します。except句は最大2048個指定できます。指定数が最大数を超えた場合はKFRB04585-Eメッセージを出力してエラー終了します。また,抽出側DBに定義されていない表を指定するとKFRB04584-Eメッセージを出力してエラー終了します。同じ表を重複して指定してもエラーにはなりません。
(3) 注意
-
抽出対象の表数が0の場合にはKFRB04586-Eメッセージを出力してエラー終了します。
-
抽出対象の表数が4097以上ある場合にはKFRB04582-Eメッセージを出力してエラー終了します。
-
各制限事項によって抽出対象外とした表の場合,KFRB04583-Wメッセージを出力して定義解析を続行します。KFRB04583-Wメッセージは,抽出対象外とした表数分出力します。
-
抽出側DBへ抽出対象表の追加,および表や列,インデクスに関する定義を変更する場合は,抽出定義の変更は不要ですが,hdeprepコマンドの再実行が必要です。手順については,「6.8 HiRDB及びDatareplicatorの構成変更」を参照してください。抽出側DBへ抽出対象外の表を追加する場合は,次回hdeprepコマンドの実行前に,抽出対象外の表をexcept句に指定する必要があります。
-
反映側Datareplicatorでは,反映定義を省略するか,又は,反映定義で反映グループ定義だけを指定してください。