【发布时间】:2016-03-28 15:21:56
【问题描述】:
首先,我确实花了相当长的时间研究,我知道有很多相关的问题,虽然我找不到这个问题的正确答案。
我正在创建一个 SSIS 包,它执行以下操作: 1. 使用 HTTP 连接在本地下载和存储 CSV 文件。 2. 读取 CSV 文件并存储在 SQL Server 上。
由于我的平面文件的结构,平面文件连接不断给我错误,无论是在 SSIS 中还是在 SQL 导入向导中。
文件的结构是:
"name of file"
"columnA","columnB"
"valueA1","valueB1"
"valueA2","valueB2"
因此,行分母是行尾 {CR}{LF},列分母是逗号{,},带有文本限定符“。
我只想导入值,而不是文件名或列名。
我玩弄了这些设置,并通过以下设置获得了正确的预览(见下图)
- 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。这 平面文件源上的 PrimeOutput 方法返回错误代码 0xC0202091。 管道引擎调用时组件返回失败代码 素数输出()。故障代码的含义由 组件,但错误是致命的并且管道停止执行。 在此之前可能会发布带有更多信息的错误消息 关于失败。
我不知道出了什么问题以及我可以做些什么来使这个导入工作。
【问题讨论】:
-
如果第一行不包含列名,
Header rows to skip应该为 1 - 在本例中。 2 如果你不想要列名 -
感谢您的快速回复。该包确实运行而不会引发错误,但不处理任何数据。在进度中我发现:“[平面文件源 [2]] 警告:读取标题行时到达数据文件的末尾。确保标题行分隔符和要跳过的标题行数正确。”
-
那么您可能使用了错误的行分隔符 - 而不是 CRLF 使用 LF。您是否尝试预览数据?源的属性页中提供了“预览”按钮。如果设置正确,您将看到数据正确对齐的网格。如果没有,您将看到数据损坏或收到错误
-
非常感谢@PanagiotisKanavos,这确实是问题所在。包现在运行完美,我确实看错了地方!
标签: sql-server ssis flat-file