使用文本限定符批量导入任务

时间:2013-04-17 15:14:11

标签: ssis

SSIS批量导入数据转换行/列分隔符定义。尝试从csv文件导入到sql表。执行导入数据/值后如下

Col1 col2 col3  
"XXX" "BBN" "BBB"  
"XXX" "BBN" "BBB"  
"XXX" "BBN" "BBB"

数据/值用双引号括起来。 我该如何解决这个问题。

csv文件的连接管理器有文本qualifer:“, 标题行分隔符{CR} {LR} 不幸的是,批量导入没有文本限定符

1 个答案:

答案 0 :(得分:0)

这是一种设置XML格式文件以使用双引号处理CSV的方法:

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="0" xsi:type="CharFixed" LENGTH="1"/>
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="&quot;,&quot;" MAX_LENGTH="12"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="&quot;,&quot;" MAX_LENGTH="38"/>
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="&quot;,&quot;" MAX_LENGTH="50" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="&quot;,&quot;" MAX_LENGTH="11" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="SequenceID" xsi:type="SQLINT"/>
  <COLUMN SOURCE="2" NAME="TransactionID" xsi:type="SQLUNIQUEID"/>
  <COLUMN SOURCE="3" NAME="Product_Name" xsi:type="SQLVARYCHAR"/>
  <COLUMN SOURCE="4" NAME="Product_Code" xsi:type="SQLVARYCHAR"/>
 </ROW>
</BCPFORMAT>

如果您想要处理竖线分隔,请将"&quot;,&quot;"更改为"&quot;|&quot;"