Approximate Numeric Datatypes Comparison

Problem: Comparison errors are generated for columns that use approximate numeric datatypes.

Possible causes: Approximate numeric datatypes include float, double precision, and real. The exact value of an approximate numeric datatype can vary from one platform to another, and can cause comparison errors such as:
  • If a key column includes an approximate numeric datatype, there is no guarantee of the DA server matching the source and target columns. Each failure to do so creates two false differences: one “missing” row in the source database and one “orphaned” row in the target database.
  • If a set of columns for comparison include an approximate numeric datatype, there is no guarantee the two matching source and target rows are considered to be equal. Each failure creates a false “inconsistent” difference.
  • If the comparer_scale_rounding value is too low, two unequal decimal numbers may be considered equal and the difference is not detected.

Solutions: You may be able to avoid false differences by skipping approximate numeric datatypes when creating column mappings, although doing so introduces the risk of genuine differences between two approximate numeric datatype columns that may go unnoticed.
Note: Reconciliation cannot fix false differences.

You may also be able to avoid false differences by lowering the comparer_scale_rounding configuration parameter to allow DA to consider two unequal, yet sufficiently similar decimal numbers to be considered equal.

For example, for 3.141592654 to equal 3.1415926535897, lower the scale rounding value from the default value of 10 to 9.

Related reference
config