0

我正在使用 sequel gem 来读取 SQL Server 数据库表。

在此之前,我使用 Oracle SQL developer 连接到 SQL server 数据库,id 列显示 1、2、3、4、5...

表定义在 SQL Developer 中如下所示: 在此处输入图像描述

但是当我使用 sequel gem 读取 Ruby 中的表格时,该 ID 列是 BigDecimal 并显示类似于 0.1e1 的内容。为什么是这样?如果这是一个 ID,它不应该总是整数吗?

我应该如何使用这个领域?我应该调用 to_i 将其转换为整数吗?

4

1 回答 1

2

数据库中的NUMERIC值实际上是非整数类型。您在这里的数字刻度为 0,如“无小数部分”,但BigDecimalRuby 仍将其视为 a,与数据库一样,没有小数部分。

如果你有一个整数类型,比如INT,那么你会在 Ruby 中得到一个 Integer,但前提是。此列可以表示,INT(10)但它不是,并且在您进行更改之前,Sequel 将尊重该差异。

NUMERIC拥有类型标识符似乎非常不寻常。这可能是一个错误。

于 2019-07-10T01:41:43.217 回答