Write to DB におけるエラー処理の設定
Write to DB ステージにはエラー ポートがあります。エラー ポートを使用すると、データベースにレコードを書き込む際にプライマリ キー制約違反や一意性制約違反などのデータベース エラーとなるレコードをフィルタして除外できます。このようなレコードはデータフローの別のパスにルーティングされ、それ以外のレコードは正常に確定されます。例えば、100 件のレコードを処理する際に、レコード 4、23、および 56 がデータベース エラーとなる場合、これら 3 件のレコードはエラー ポートを介してルーティングされ、その他 97 件のレコードはデータベースにコミットされます。
注: エラー ポートを使うかどうかは任意です。エラー ポートを使わない場合は、レコードが 1 つでもエラーになるとジョブは失敗に終わります。
データフローを実行すると、エラーとなるレコードは、エラー ポートを介してルーティングされます。エラー ポートからのレコードには、Write to DB で指定されたフィールドと、次のフィールドが含まれます。
- Error.code
- このフィールドには、データベースから返される数値エラー コードが含まれます。例えば、
ORA-00001: unique constraint ANKUSH.SYS_C0010018) violated
というエラーがある場合、Error.code フィールドの値は1
になります。エラー コードの一覧については、データベース ソフトウェアのマニュアルを参照してください。 - Error.Message
- このフィールドには、データベースから返されるエラー メッセージが含まれます。例:
ORA-01034 ORACLE not available
。この場合、ORACLE not available
は、Error.Message フィールドの値です。エラー メッセージの一覧については、データベース ソフトウェアのマニュアルを参照してください。 - Error.SQLState
- このフィールドには、エラーの原因に関する詳細情報を示す SQLSTATE コードが含まれます。SQLSTATE コードの一覧については、データベース ソフトウェアのマニュアルを参照してください。
- Timestamp
- Spectrum™ Technology Platform サーバーでエラーが発生したときの日時。
- Username
- データフローを実行した Spectrum™ Technology Platform ユーザの名前。