为什么 SQL 开发者 ID 列 return 我是 BigDecimal 而不是简单的整数?
Why is SQL developer ID column return me BigDecimal instead of simple integer?
我正在使用 sequel gem 读取 SQL 服务器数据库 table。
在我这样做之前,我使用 Oracle SQL developer 连接到 SQL 服务器数据库,id 列显示 1, 2, 3, 4, 5...
table 定义在 SQL 开发者中看起来像这样:
但是当我使用 sequel gem 读取 Ruby 中的 table 时,该 ID 列是一个 BigDecimal 并显示类似 0.1e1 的内容。为什么是这样?如果这是一个 ID,它不应该总是整数吗?
我应该如何使用这个字段?我应该调用 to_i 将其转换为整数吗?
您数据库中的 NUMERIC
值实际上是 non-integer 类型。这里的数字比例为 0,如 "no decimal part" 中所示,但它仍被 Ruby 视为 BigDecimal
,与数据库一样,没有小数部分。
如果你有一个整数类型,比如 INT
,那么你将在 Ruby 中得到一个整数,但前提是。此列可以用 INT(10)
表示,但它不是,直到您进行更改 Sequel 才会尊重该差异。
NUMERIC
类型标识符似乎非常不寻常。这可能是一个错误。
我正在使用 sequel gem 读取 SQL 服务器数据库 table。
在我这样做之前,我使用 Oracle SQL developer 连接到 SQL 服务器数据库,id 列显示 1, 2, 3, 4, 5...
table 定义在 SQL 开发者中看起来像这样:
但是当我使用 sequel gem 读取 Ruby 中的 table 时,该 ID 列是一个 BigDecimal 并显示类似 0.1e1 的内容。为什么是这样?如果这是一个 ID,它不应该总是整数吗?
我应该如何使用这个字段?我应该调用 to_i 将其转换为整数吗?
您数据库中的 NUMERIC
值实际上是 non-integer 类型。这里的数字比例为 0,如 "no decimal part" 中所示,但它仍被 Ruby 视为 BigDecimal
,与数据库一样,没有小数部分。
如果你有一个整数类型,比如 INT
,那么你将在 Ruby 中得到一个整数,但前提是。此列可以用 INT(10)
表示,但它不是,直到您进行更改 Sequel 才会尊重该差异。
NUMERIC
类型标识符似乎非常不寻常。这可能是一个错误。