【问题标题】:Bulk Import task with text qualifier带有文本限定符的批量导入任务
【发布时间】:2013-04-17 15:14:10
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我不太明白你的问题。你的意思是你的 SSIS 包从 csv 文件中导入了文本限定符,但不应该?
  • 1.我需要使用 SSIS 2 将数据从 CSV 文件导入 sql 表。所以我使用批量插入任务将数据导入 sql(不能使用平面文件源,需要很长时间)。说得通??? 3. 现在一切正常,数据在 sql 表中,但数据用双引号括起来.. 将其视为 tableA 列 Col1 col2 col3 "XXX" "BBN" "BBB" "XXX" "BBN" "BBB" "XXX " "BBN" "BBB" 所以我不需要在数据两边加上双引号。我的问题现在有意义吗??

标签: ssis


【解决方案1】:

这是一种设置 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>

如果您想处理管道分隔,请将"&amp;quot;,&amp;quot;" 更改为"&amp;quot;|&amp;quot;"

【讨论】:

    猜你喜欢
    • 2010-11-25
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多