我正在尝试使用BULK INSERT插入第三方报告。其中一列使用TIME数据类型具有呼叫持续时间,但是如果由于某种原因他们没有呼叫时间,则他们将报告标记为N / A,这会在BULK INSERT期间导致错误:
FIRAnalytics.logEventWithName("Ratings", parameters: [
"rating": (indexPath.row + 1)
])
问题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).
中的列的默认约束为'00:00:00'我希望系统在该列(或任何列)中的BULK INSERT期间标记错误时使用对于这个问题,使用默认约束)
更新:这是我的BULK INSERT声明:
call_duration
我希望在数据出现问题时使用BULK INSERT dbo.TempYellowPages
FROM 'Z:\YP.txt'
WITH (
FIRSTROW=2,
FIELDTERMINATOR='\t',
ROWTERMINATOR='\n',
MAXERRORS = 99
)
表中列的默认约束。我不能使用CONVERT(据我所知),因为数据不在源表中,它直接来自文件。以下是该文件可能具有的一些字段的示例:
TempYellowPages
答案 0 :(得分:0)
在源查询中将“call_duration”列转换为varchar,使用CONVERT函数。请注意SQL Server如何理解'00:00:00'(可能是1900-01-01')并根据'1900 ..'值将报告条件更改为显示'N / A'