SSIS读取平面文件跳过第一行

时间:2015-12-22 11:11:03

标签: sql-server ssis flat-file

首先,我确实花了很多时间研究,我知道有很多相关的问题,但我找不到这个问题的正确答案。

我正在创建一个SSIS包,它执行以下操作: 1.使用HTTP连接在本地下载和存储CSV文件。 并且2.读入CSV文件并存储在SQL Server上。

由于我的平面文件的结构,平面文件连接一直给我带来错误,在SSIS中都像SQL导入向导一样。

文件的结构是:

"name of file"
"columnA","columnB"
"valueA1","valueB1"
"valueA2","valueB2"

因此行分母是行尾{CR} {LF},列分母是逗号{,},带有文本限定符“。

我只想导入值,而不是文件名或列名。

我玩了设置并使用以下设置进行了正确的预览(见下图)

enter image description here

- Header rows to skip: 0
- Column names in the first data row: no
- 2 self-configured columns (string with columnWidth = 255)
- Data rows to skip: 2

当我运行SSIS包或SQL导入向导时,出现以下错误:

  

[SSIS.Pipeline]错误:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。该   Flat File Source上的PrimeOutput方法返回错误代码0xC0202091。   当管道引擎调用时,组件返回失败代码   PrimeOutput()。失败代码的含义由   组件,但错误是致命的,管道停止执行。   在此之前可能会发布错误消息以获取更多信息   关于失败。

我无法弄清楚出了什么问题以及我可以做些什么来使这个导入工作。

1 个答案:

答案 0 :(得分:1)

如果要跳过文件名和列名,则需要将Header Rows to skip设置为2.还应检查文件是否实际使用换行符(LF)而不是CR + LF。检查文本编辑器中的换行符不足以检测差异,因为大多数编辑器都会正确显示同时包含CR+LFLF的文件。

您可以点击平面文件来源中的“预览”按钮来查看设置的结果。如果设置正确,您将看到一个网格,您的数据正确对齐。如果没有,你会得到一个错误,或者数据会以某种方式出错,例如,第一个数据行中的列数,列名等很多