0

我正在尝试将数据插入 SQL Server 2012 中的临时数据库。

这是我的数据,使用的数据类型:

1234ab  nchar(25) NOT NULL primary key
240     smallint
4535ab  nchar(10)
04/01/2013  date
58f658      nchar(6)
584g6555    nchar(9)
Insufficient Data   text
10      tinyint
N/A     nchar(5)
N/A     nchar(5)
4       smallint
N/A     nchar(5)
N/A     nchar(5)
4       smallint
N/A     nchar(5)
N/A     nchar(5)
4       smallint
51651.00    numeric(10,7)
65465.50    numeric(14,10)
65465.00    numeric(10,7)
4845.00     numeric(14,10)
04/01/2013  date
5465.00     numeric(18,3)
5465.00     numeric(18,3)
5546.00     numeric(10,7)
test.html   text
note test   text

导入时,所有非数字数据周围都有相应的“'”。(顺便说一句,一些数据类型似乎比需要的大,但这只是一个测试导入的小数据样本)
但我收到以下错误:

算术溢出将 int 转换为数据类型 numeric

我只是使用常规INSERT INTO语句。我已经盯着我的屏幕看了很长时间了,所以我可能只是读了一遍..但是我在这里错过了什么?数据似乎并不比域大。

顺便说一句,如果您需要更多信息,请告诉我。

4

1 回答 1

0

51651.00 数字(10,7)

“numeric(10, 7)”表示总共 10 位数字,其中 7 位在小数点右侧。这并没有为“51651”在小数点左侧留下足够的空间。

不同的 dbms 可能会给您提供更多信息的错误消息。这个来自 PostgreSQL。

ERROR:   numeric field overflow
DETAIL:  A field with precision 10, scale 7 must round 
         to an absolute value less than 10^3.
于 2013-04-12T22:18:41.753 回答