Updateオペレータが正常に処理できないデータ行に遭遇すると、Updateオペレータ ジョブ内にターゲット テーブルごとに作成される2つのエラー テーブルのいずれかに行を作成します。
これらのエラー テーブルは、Loadオペレータで使用されるものによく似ていますが、通常、これらを区別するためにUpdateのエラー テーブルには末尾に接尾辞が付いた名前が付けられます。
- ErrorTable1では接尾辞としてETを使用します。
- ErrorTable2では接尾辞としてUVを使用します。
エラー テーブルに関する考慮事項は以下のとおりです。
- ジョブでエラーが生じなかった場合、エラー テーブルは空になります。 この場合のテーブルはジョブの終了時に自動的に削除されます。
- エラーが生成された場合、エラー テーブルはジョブの終了時に保存されるため、エラー状況を分析できます。
- 最初からジョブを再実行するには、エラー テーブルを削除するか、名前を変更する必要があります。このようにしない場合、すでにエラー テーブルがあることを示すエラー メッセージが返されます。
- 逆に、ジョブを再開する場合(途中から)、エラー テーブルがすでに存在している必要があります。 つまり、更新ジョブを再開する場合はエラー テーブルを削除しません。
- エラー テーブルの名前はデフォルトで設定するか、VARCHAR ErrorTable属性を使用して明示的に指定できます。
エラーは、次のように2つのテーブルに分かれます。
- エラー テーブル(ET)には、データとデータ環境に関連するほとんどのエラーが含まれます。
次のタイプのエラーが取得されます。
- テーブルに定義された範囲制約に違反する制約違反レコード。
- オフラインAMPの非フォールバック テーブルに書き込まれる利用不可AMPレコード。
- 指定されたデータ型に変換できないデータ変換エラー レコード。
デフォルトでは、このエラー テーブルには次の表記規則を使用して名前が割り当てられます。
Target_Tablename_ET
- 固有性違反(UV)には、固有プライマリ インデックスに違反するすべての行が含まれます。
デフォルトでは、このエラー テーブルには次の表記規則を使用して名前が割り当てられます。
Target_Tablename_UV
各エラー テーブルでは、問題の原因の特定に役立つ情報を最大8列まで生成できます。 BTEQジョブでSQL SELECT文を使用して、エラー テーブルからこれらの列の一部またはすべてを任意の順序で返すように指定できます。
エラー テーブルへのアクセスの詳細については、エラー テーブルのアクセスと使用を参照してください。
さらに、取得エラー テーブルには、不完全なレコードが格納されます。適用エラー テーブルにはターゲット テーブルの列のミラー イメージが格納されます。
適用エラー テーブルには、エラー情報に続いて、ターゲット テーブルのミラー イメージが格納されているため、Updateオペレータ ジョブのターゲット テーブルには、エラー テーブルと同じ列名を使用できません。同じ列名を使用すると、Updateジョブは終了され、3861のエラー メッセージが返されます。
エラー テーブルの列の名前については、エラー テーブルのアクセスと使用および適用エラー テーブルを参照してください。