VBA:Arthimetic溢出转换int到数据类型数字

时间:2013-04-12 21:43:05

标签: sql sql-server vba insert-into

我正在尝试将数据插入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

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

  

Arthimetic overflow int将int转换为数据类型numeric

我只是使用常规INSERT INTO语句。 我现在已经盯着我的屏幕了很多,所以我可能只是阅读它...但我在这里缺少什么?数据似乎不比域大。

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

1 个答案:

答案 0 :(得分:0)

  

51651.00数字(10,7)

“数字(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.