1
我的应用程序读取正在批处理作业中处理的大文件,如果它具有代码“D”,它将删除帐户表中的行。 此帐户表与外部关键字FK_ACCOUNT_CONSUMER_ID
的关系由CONSUMER_ID列链接的Consumer表。 删除操作的顺序是正确的,有时会导致完整性约束违规错误,并且作业失败。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