我想在批量插入數據的地方設置中使用小數點分隔符作爲逗號。 數據如下:使用區域分隔符在SQL Server中批量插入
RegionName Value_1 Value_2 Value_3
Region 1 27,48 66,41 32,82
Region 2 38,93 45,80 61,83
Region 3 38,17 58,02 35,11
Region 4 34,35 16,03 29,01
Region 5 67,94 58,02 17,56
我使用這個腳本進行批量插入:
create table RegVaues (
RegionName varchar(30)
,Value_1 float
,Value_2 float
,Value_3 float
)
go
bulk insert RegVaues
from N'A:\TestValues.txt'
with
(
DATAFILETYPE = 'widechar'
,fieldterminator = '\t'
,rowterminator = '\n'
,firstrow = 2
,keepnulls
)
go
履行紙條後,我收到一個錯誤:
sg 4864, Level 16, State 1, Line 2 Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, column 2 (Value_1).
當我嘗試與作爲分隔符的點相同 - 所有作品。我試圖插入不同類型的數據(float,decimal,numeric)。在我的SSMS的工具 - >選項 - >國際設置中,語言設置爲「與Microsoft Windows相同」。數據庫整理是Ukrainian_CI_AS。但仍然無法插入帶有逗號分隔符的數據。我做錯了什麼?
'bulk insert'不支持本地化的小數點分隔符。這是非常意外的。當我遇到同樣的問題時,我花了好幾天的時間試圖弄清楚我錯過了什麼。 – Andomar
謝謝Andomar!顯然,正如M.Ali回答的那樣,解決方案是用小數點代替逗號並使用臨時表。 –