簡體   English   中英

批量插入不插入數據

[英]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=1252DATAFILETYPE = 'widechar'來解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM