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.