2016-09-23 49 views
0

我正在嘗試使用BULK INSERT插入第三方報告。 Msg 4864, Level 16, State 1, Line 20 Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 9, column 11 (call_duration).在使用默認約束期間發生數據轉換錯誤的BULK INSERT

:其中一列使用TIME數據類型,但是,如果由於某種原因,他們沒有他們的報告將其標記爲N/A該BULK INSERT過程中導致錯誤的調用時間具有通話時間問題call_duration的列有默認約束'00:00:00'我希望系統在該列的BULK INSERT過程中標記錯誤時(或者具有默認約束條件的任何列) )

更新:這是我的BULK INSERT語句:

BULK INSERT dbo.TempYellowPages 
FROM 'Z:\YP.txt' 
WITH (
FIRSTROW=2, 
FIELDTERMINATOR='\t', 
ROWTERMINATOR='\n', 
MAXERRORS = 99 
) 

當數據出現問題時,我正在使用TempYellowPages表中的列的默認約束。我不能使用CONVERT(據我所知),因爲數據不在源表中,它直接來自文件。下面是一些領域的一個例子文件可以有:

Date Time Caller Name Caller Number Call Duration 
9/2/2015 4:03:18 PM John Smith (555) 444-1115 0:04:38 
9/2/2015 10:53:09 AM Thomas Bush (555) 444-1115 N/A 
9/2/2015 10:26:28 AM Burt Fenimore (555) 444-1115 0:05:53 
+0

你有沒有訪問sql服務器客戶端? – zee

+0

是的,我有訪問 –

+0

嗨,輸入文件是如何生成的?就像它來自* nix機器,hadoop羣集,從xls(x)導出?... – zee

回答

0

的「call_duration」列轉換爲varchar源查詢,使用CONVERT功能。請注意SQL Server如何理解'00:00:00'(可能爲1900-01-01),並根據'1900 ..'值將報告條件更改爲顯示'N/A'