使用BULK INSERT导入双引号限定CSV文件不起作用

问题描述 投票:0回答:1
BULK INSERT dbo.Data_NEW FROM 'D:\Data.csv' 
WITH ( FIELDTERMINATOR ='","',ROWTERMINATOR ='"\n"',FirstRow=1);

我在使用双引号csv文件运行批量插入时遇到问题。你能帮帮我解决这个问题。

csv文件具有以下内容:

“设备”,“备用设备”,“服务器”,“位置”,“时间”,“值”,“单元”,“状态”“101.162.57.1​​98-从属56”,“本地主机(数据中心)”,“输出真“,”,“2017年11月14日14:58:00”,“88.8”,“kW”,“”“101.162.57.1​​98- Slave56”,“localhost(数据中心)”,“输出真实”,“ “,”2017年11月14日16:58:00“,”88.7“,”kW“,”“”101.162.57.1​​98- Slave56“,”localhost(数据中心)“,”输出真实“,”“,”11月14,2017 18:58:00“,”88.5“,”kW“,”“”101.162.57.1​​98- Slave56“,”localhost(数据中心)“,”输出真实“,”“,”2017年11月14日20 :58:00" , “89.0”, “千瓦”, “”

sql-server csv bulkinsert
1个回答
0
投票
  1. 您应该设置FirstRow=2或从csv文件中删除第一行
  2. 将行终止符更改为:ROWTERMINATOR ='\n'
  3. 您应该删除csv文件的每一行中的第一个和最后一个双引号。

更新:尝试使用'0x0a'而不是'\n'作为行终止符。如果操作无法解决问题,请创建一个格式文件来描述表和csv文件列之间的确切关系。以下链接将帮助您:

Non-XML Format Files

Create a Format File

然后使用此命令:

BULK INSERT dbo.Data_NEW FROM 'D:\Data.csv' 
WITH (FORMATFILE = 'D:\yourFMT.fmt');
© www.soinside.com 2019 - 2024. All rights reserved.