My Oracle Support Banner

In ODI 12c, Rows are Incorrectly Inserted Even Though CKM Constraint Is Not Met and Error Threshold Is 0 (Doc ID 2487599.1)

Last updated on FEBRUARY 13, 2019

Applies to:

Oracle Data Integrator - Version and later
Information in this document applies to any platform.


The behavior of Flow Control is different between Oracle Data Integrator (ODI) 11g and

In ODI 11g, with "Maximum number of errors allowed" set to 0, when a check constraint is encountered, the bad records are inserted into the error table and the Integration Interface execution is marked as failed. The remaining steps are marked as "waiting". There are no rows inserted into target.

In ODI 12c, with "Maximum number of errors allowed" set to 0, the checks continue to be executed even once bad data is detected. The Mapping execution is still marked as failed, but the rows that are not failing the check are inserted into target. Also, all steps are executed and marked as successful.

With "Maximum number of errors allowed" set to 0, none of the records should be inserted into target.

To reproduce the behavior:

  1. Create a simple source and target Model.
  2. On target, implement a check constraint, ie, a number cannot be greater than 1.
  3. Create a Mapping using ODI 12c, the Oracle CKM and turning ON the Flow Control option.
  4. Have one or more rows in the Mapping which will fail the check.
  5. Execute the Mapping and observe the issue.


NOTE: In the example below any details, ie the port configured, represent a fictitious sample. Any similarity to actual configurations, persons, living or dead, is purely coincidental and not intended in any manner.



To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.