[英]Bulk INSERT not inserting data
運行以下代碼時,Management Studio會顯示一個錯誤,該錯誤已將其設置為錯誤。
我需要通過BULK INSERT將簡單的文本數據插入表中。 插入代碼如下:
BULK INSERT Pais FROM 'C:\[bulkdata]\shared\01-Pais.txt'
WITH(MAXERRORS = 0, CODEPAGE = 'ACP', FIELDTERMINATOR = 'ø', ROWTERMINATOR = '\n', KEEPNULLS,
ERRORFILE = 'C:\[bulkdata]\shared\teste.txt')
我用來測試此命令的文件只有一行用於插入數據, teste.txt:
BrasilØ01058
返回的錯誤如下:
Msg 4832, Level 16, State 1, Line 1
Bulk load: An unexpected end of file was encountered in the data file.
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
teste.txt:
BrasilØ01058BrasilØ01058
在我看來,這是試圖在同一行上兩次插入值,但是正如設置所示,它通常會插入到其他項目中。 我的用戶可以未經允許嗎? 我已經創建了具有所有權限的特定用戶,並且還為服務器設置了執行批量操作的權限。
teste.txt.Error.Txt:
Row 1 File Offset 0 ErrorFile Offset 0 - HRESULT 0x80004005
這似乎是一個character
問題,您可以嘗試使用另一個類似§
的character
。 您只需要做一些調整:
FIELDTERMINATOR = '§'
和您的01-Pais.txt
文件:
Brasil§01058
更新:似乎數據庫排序規則和文件編碼問題的混合,也可能使
bulk
操作混亂。 將文件另存為ANSI
而不是UTF-8
似乎已解決了原始問題。 似乎也可以使用CODEPAGE=1252
或DATAFILETYPE = 'widechar'
來解決此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.