2013-04-12 39 views
0

我試圖將數據插入到一個臨時數據庫在SQL Server 2012中VBA:Arthimetic溢出INT轉換爲數據類型數字

這是我的數據,以及所使用的數據類型:

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 converting int to data type numeric

我只是使用普通INSERT INTO聲明。 我一直在盯着我的屏幕,所以我可能只是讀過它..但我在這裏錯過了什麼?數據似乎並不比域名大。

順便說一句,如果你需要更多的信息,請讓我知道。

+0

您可能需要發佈您的INSERT語句。 –

回答

0

51651.00 numeric(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. 
+0

我認爲它的工作原理是這樣的(10,7)= 10總數和7號碼右邊,如果使用。所以12,1234567或1234567,12都可以工作..但是你的話(10,7)只允許3到小數點左邊? – MeRuud

+0

這不難測試。 '創建表wibble(n數字(10,7));插入wibble值(12345.67);' –

+0

非常感謝。 – MeRuud

相關問題