【问题标题】:Bulk Import CSV file into SQL Server - remove double quotes将 CSV 文件批量导入 SQL Server - 删除双引号
【发布时间】:2016-12-14 17:44:45
【问题描述】:

我正在运行 SQL 2008,批量插入命令,在插入数据时,我试图从 CSV 文件中删除 (") 双引号,这部分有效,但不适用于所有记录,请检查我的代码和结果截图。

Bulk Insert tblUsersXTemp 
 from 'C:\FR0250Members161212_030818.csv'
 WITH (FIELDTERMINATOR = '","', 
 ROWTERMINATOR = '"\n"',
 --FormatFile =''
 ERRORFILE = 'C:\bulk_insert_BadData.txt')

【问题讨论】:

  • 有问题的行是 CSV 的第一个还是最后一个?

标签: sql-server


【解决方案1】:

完成批量插入后,您可以替换双引号。

UPDATE tblUsersXTemp
SET usxMembershipID = REPLACE(usxMembershipID, CHAR(34), '')

【讨论】:

  • CHAR(34) 在这里表示什么?
  • @psam 引用
【解决方案2】:

我相信你需要一个格式文件,这就是我认为正在发生的事情。

如果您使用以下批量插入命令在不使用格式文件的情况下导入数据,那么您将在第一列值前面加上引号前缀,在最后一列值后面加上引号后缀和引号第一列值的前缀。

Reference

参考示例:

BULK INSERT tblPeople
   FROM ‘bcp.txt’
   WITH (
      DATAFILETYPE=‘char’,
      FIELDTERMINATOR=‘","’,
      ROWTERMINATOR = ‘\n’,
      FORMATFILE = ‘bcp.fmt’);

您还可能拥有不只是使用引号作为分隔符的脏数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多