選択パーティションの復元/コピー処理では、Teradataによってエラー テーブルが生成されます。エラー テーブルには、次のような場合に行が記録されます。
- 復元する選択パーティションの範囲に含まれる行が、ターゲット テーブルの整合性チェックをパスしなかった場合
- ユーザーが復元を希望しない行がLOG WHERE条件を満たしていた場合
- 行に関する上記の条件を評価しているときに、エラーが発生した場合
選択したパーティションの復元/コピー プロセスで作成されるエラー テーブルには、以下に示すような特徴があります。
名前 | ||
データベース名 | ERRORDBオプションでデータベース名が指定されていないか、またはERRORTABLESオプションでエラー テーブル名のデータベース修飾子としてデータベース名が指定されていない場合、エラー テーブルは、復元またはコピーするターゲット テーブルと同じデータベース内に存在します。それ以外の場合は、指定されたデータベース内にエラー テーブルが存在します。 | |
エラー テーブル名 | エラー テーブルの名前が(ERRORTABLESオプションで)指定されていない場合は、RS_targettablename(右側は、30文字に収まるように切り捨て)がエラー テーブルの名前になります。切り捨て処理が行なわれた場合は、警告メッセージが表示されます。 例えば、テーブルTB1を復元する場合、エラー テーブルのデフォルトの名前はRS_TB1になります。 |
|
テーブルの名前と同じ名前のエラー テーブルがデータベース内にすでに存在する場合は、エラーが発生します。復元/コピー ジョブを実行する場合には、その前にそのテーブルを削除するかテーブルの名前を変更してください。または、別のテーブルやデータベースの名前を指定してください。 すでに存在しているテーブルの内容を確認して、そのテーブルを削除するかどうかを決定してください。
|
||
インデックス | ||
プライマリ インデックス | エラー テーブルのプライマリ インデックスは、非固有でパーティション化されません。 このプライマリ インデックス列は、ターゲット テーブルのプライマリ インデックス列と同一です。 | |
セカンダリ インデックス | エラー テーブルにはセカンダリ インデックスがなく、参照整合性関係にも関与しません。 例については、ディクショナリ アーカイブからの復元を参照してください。 |
|
エラー テーブルの制約 | ||
複数の復元/コピー ジョブで、同じエラー テーブルを共有しないでください。 復元/コピー ジョブを正しく実行できるように、エラー テーブルは、各ジョブで対象となっているテーブルごとに専用のものを用意してください。 | ||
エラー テーブルは、復元/コピー ジョブが終了するまで削除しないでください。 エラー テーブルは、復元/コピー ジョブを再起動する場合以外は存在していてはなりません。 復元/コピー ジョブを再開する場合は、その時点でエラー テーブルが存在している必要があります。 | ||
その他の特徴 | ||
列 | すべての列のデータ型と属性は、列レベルの保全制約とNULL以外の属性を除き、ターゲット テーブルと同じです。 | |
DBCErrorCode | DBCErrorCodeのデータ型はINTEGERで、DBCErrorCodeはNULLではありません。 これは、エラー テーブルに行が挿入される原因となったTeradataエラーを示します。 | |
DBCOldROWID | DBCOldROWIDのデータ型はBYTE(10)であり、DBCOldROWIDはNULLではありません。 これは、バックアップが作成されたときの、内部のパーティション番号、行ハッシュ、および行の一意性値を示します。 | |
空のテーブル | ターゲット テーブルに対する復元/コピー ジョブが終了した時点でエラー テーブルが空だった場合、そのエラー テーブルは削除されます。 | |
ターゲット テーブルからの制約なし | エラー テーブルは、ターゲット テーブルの保全制約について、NOT NULL、テーブル レベル、列レベルのいずれの値も持ちません。 これは、保全制約にパスしなかった行をエラー テーブルに挿入できるようにするためです。 | |
保護タイプ | エラー テーブルの保護タイプ(FALLBACKまたはNO FALLBACK)は、対応するターゲット テーブルの保護タイプと同じです。 | |
SETテーブル | ターゲット テーブルがMULTISETテーブルの場合でも、エラー テーブルは必ずSETテーブルになります。 重複した行は無視されます。 |