アプリケーションでバッチ・ジョブで処理されている巨大なファイルが読み取られました。コード「D」があれば、アカウント・テーブルの行が削除されます。 このアカウントテーブルには、CONSUMER_ID列によってリンクされたコンシューマテーブルとの外部キーFK_ACCOUNT_CONSUMER_ID
の関係があります。 削除操作は正しい順序で行われます。これにより、整合性制約違反エラーが発生し、ジョブが失敗することがあります。ORA-02292:整合性制約違反(FK_ACCOUNT_CONSUMER_ID) - 子レコードが見つかりました
ご協力いただきまして誠にありがとうございます。
BEGIN
--If action code is D, delete the records
IF (temp_account_id is not null AND temp_action_code = 'D') THEN
delete account_tokens at
where at.account_id = temp_account_id;
delete account a
where a.account_id = temp_account_id;
END IF;
END;
com.batch.framework.BatchJobException:のSQLException データフィードバッチ処理中= 343919.メッセージ= IDBResultSet オブジェクトを作成できませんでした:java.sql.SQLIntegrityConstraintViolationException:ORA-02292: 整合性制約を( FK_ACCOUNT_CONSUMER_ID)違反 - 子レコード を、あなたは物事のカップルを確認する必要があり
両方のテーブルのDDL、または少なくともPK/FK制約の定義方法を示す必要があります。アカウントにコンシューマテーブルのPKを参照するFKがある場合、その子(アカウント)レコードを削除してもこのエラーは発生しません。後でコンシューマ(おそらく複数のアカウントを持つアカウント)を削除したり、期待していないことをトリガしたり、適切ではないカスケード制約を適用したりしていますか? –
あなたのFK制約 'FK_ACCOUNT_CONSUMER_ID'の定義をチェックすると、それは別のテーブルを指している可能性があります。 – wdosanjos