【问题标题】:Bulk Insert Formatting Issue from CSV FileCSV 文件中的批量插入格式问题
【发布时间】:2016-06-20 18:49:30
【问题描述】:

我正在从 CSV 文件进行批量插入。

在我的一个专栏中,我使用了一个冒号,例如 36:21.0。对于此列中的每一行,我都会收到以下错误:

"Msg 4864, Level 16, State 1, Line 1
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 11, column 3 (MyColumnName)."

是否有人知道解决此问题的方法,以便我能够批量插入数据中带有冒号的列以及我的其余列​​?

如果你有兴趣,这里是我的查询:

BULK INSERT dbo.[PropertyDefinition] FROM 
'//MY CSV FILE PATH HERE'
WITH(
        FIRSTROW = 2,
        DATAFILETYPE ='char',
        FIELDTERMINATOR = ',',
        ROWTERMINATOR = '\n'            
    )

【问题讨论】:

  • 检查第 11 行中的前几列。它们是否包含逗号?使用 formatfile 也是个好主意(xml 格式文件是我的首选)。
  • 谢谢。很高兴知道。

标签: sql-server csv bulkinsert


【解决方案1】:

您的查询是正确的。

我不认为冒号会导致问题,因为字段终止符和行终止符不包括冒号。

此问题通常是由于文件和表中的数据类型不匹配造成的。

只需确保您为第 3 列提供的数据类型与文件中第 11 行第 3 列的数据类型匹配即可。

【讨论】:

  • 是的,你是对的。我从中提取的 CSV 文件提取的 datetime2 格式比表格预期的要旧。该表预计当前 datetime2。我很确定这是导致此错误的原因。我会继续挖掘。感谢您澄清冒号可以这样使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-30
  • 1970-01-01
  • 1970-01-01
  • 2011-11-15
相关资源
最近更新 更多