Other: HVR Default Data Type Mapping Scale/Precision Too Small
By default HVR maps a number (without scale or precision) in Oracle to numeric(38,4) in SQL Server and Databricks. Is it possible to change this default to have a higher precision so that there is no data loss?
We found that in many cases the default data type precision used at the target was not adequate for the data. There are many cases where the scale is significantly less than the source defines it. This difference results in data loss at the destination.
-
Paul,
HVR assigns decimal(38,4) when the data type on Oracle is NUMBER without any scale or precision. Note that HVR does not perform data sampling, so we understand that, depending on your data, you may experience data loss.
Note that Oracle's NUMBER data type without scale or precision allows for:
- Positive numbers in the range 1 x 10-130 to 9.99..9 x 10125 with up to 38 significant digits
- Negative numbers from -1 x 10-130 to 9.99..99 x 10125 with up to 38 significant digits
Most technologies do not provide for a numeric data type with such a wide range of values.
That said it is perhaps not likely that your data covers this full range. You can change HVR's default using ColumnProperties DataTypeMatch to change the default mapping for a source NUMBER data type with no scale or precision.
Note that in line with all actions in HVR you create the action within a certain scope e.g. per table, per table group, or for all tables in the channel.
Hope this helps.
Mark.
Please sign in to leave a comment.
Comments
1 comment