2015-10-26 20 views
-1

參考此文章Bulk Insert Includes Line Terminator現在有一個解決方案,因爲我正在嘗試相同的問題,並得到相同的問題。我按照建議將我的文件保存在NotePad中並且沒有任何區別。這是第一個數據值:'╗┐AbeBULK INSERT ISSUE在第一行拾取有趣的字符

代碼:

BULK 
INSERT BulkWordInsert 
FROM '<sometextfile>.txt' 
WITH 
(
    FIELDTERMINATOR = ':', 
    ROWTERMINATOR = '\n' 
) 
+0

添加代碼頁有幫助嗎? 'WITH(CODEPAGE ='RAW')' – HoneyBadger

+0

是的,我試過這種變化,DATAFILETYPE ='char'不起作用,DATAFILETYPE ='widechar'也使用CODEPAGE ='65001'。所有變化都沒有區別。我看到的唯一方法是在批量插入之後,我必須通過編寫修剪掉這個有趣文本的SQL來修復它 – Glen

+0

這些字符是UTF-8的字節標記,SQL Server不支持這些字符。您應該將輸入文件轉換爲UTF-16。參見:http://stackoverflow.com/questions/15137558/how-to-handle-import-of-file-with-utf-8-encoding-codepage-65001-into-sql-ser –

回答

0

我建議使用超dooper文本編輯器打開該文件,如UltraEdit的(在ultraedit.com下載免費試用版),然後按下Ctrl-H進入十六進制模式,並且眼球是否用BULK INSERT加載該字符,因爲該字符實際上在文件中。猜測其他文本編輯器將能夠做到這一點,但UltraEdit是我最熟悉的。

如果是這樣,那麼您將不得不聯繫文件的源代碼,並要求他們刪除它,或者加載它,然後將T-SQL寫入REPLACE(the_string,the_goofy_character,'')。

我有一個以前的客戶端的問題,其中一個UNIX主機踢出奇數字符的文本文件。