DSCT01100:十进制浮点数据类型已更改为二进制浮点数以保留小数位数(警告)

本文介绍数据库架构转换工具包可能将数据类型从十进制浮点数更改为二进制浮点数的原因。

背景

Oracle 数据库支持十进制浮点数据类型,此类型允许比 Microsoft SQL decimal/numeric 数据类型更大的范围。 例如,Oracle 的 NUMBER 数据类型表示十进制浮点数,并允许 -84127 的范围,而 Microsoft SQL decimal/numeric 数据类型允许的最大值为 38。 为了在这种情况下保持范围,数据库架构转换工具包会将数据类型更改为 float

示例

以下面的 Oracle 表定义为例:

CREATE TABLE EXAMPLE
(
    COLUMN1 NUMBER(10, 50)
)

NUMBER(10, 50) 数据类型允许 10 个有效十进制位,范围达到 10^50。 此类值不适合 Microsoft SQL decimal/numeric 数据类型。

可能的补救措施

确保可接受使用二进制浮点数。 如果应用程序方案需要完整的十进制精度,请考虑使用 VARCHAR 数据类型按原样存储数字。