We're getting a ORA-00001 (unique constraint violated) in a batch job. However, the error occurs when a COMMIT is issued, not at the time the offending record is inserted.
Questions:
Any help is appreciated!
Additional Information/Question:
The "offending" constraint is marked as IMMEDIATE and NON-DEFERRABLE. Can this be overridden in the transaction?
Constraints can be marked/defined as deferrable. In that case constraint checks can be either "immediate" or "deferred". When defining the constraint you can set a default/initial value, initially immediate or initially deferred. When set to deferred the constraint is enforced not until you commit the transaction.
You can change the behaviour of deferrable constraints e.g. via
set constraints all immediate;
see also: http://www.oracle.com/technology/oramag/oracle/03-nov/o63asktom.html
Constrains can be defined as deferred, meaning that they are checked at commit, not at the time of the data change. See the following 2 links:
http://www.oracle-base.com/articles/8i/ConstraintCheckingUpdates.php
http://www.oracle.com/technology/oramag/oracle/03-nov/o63asktom.html
hope it helps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With