CSV文件上的SSIS Foreach循环错误

时间:2017-10-18 13:32:56

标签: sql-server database date ssis derived-column

是的,所以我有一个带有数据流的foreach循环,它通过一组具有完全相同格式的文件。这会使用派生列更改一些内容,该列将全部转储到SQL Server数据库中,该数据库将成为我的临时表。

问题是,即使文件格式相同,某些文件也会出现错误,错误总是在日期附近。它将通过4个文件没有问题,然后在第5个文件上它停止工作。

我想做什么?

  • 我希望获得一大堆具有相同格式的文件,并在更改某些格式时将数据从内部放入SQL数据库。

我尝试过什么?

  • 我尝试将日期重新格式化为dd / mm / yyyy,这是我想要日期的格式。 重新格式化工作但在出现类型转换错误之前在同一个有错误的文件上工作。

这是我得到的错误: [OLE DB Destination [59]]错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:“Microsoft SQL Server Native Client 11.0”Hresult:0x80004005描述:“转换规范的字符值无效”。

[OLE DB目标[59]]错误:OLE DB Destination.Inputs [OLE DB目标输入]上的错误。OLE DB Destination.Inputs [OLE DB目标输入]上的[Amount]列。返回的列状态为:“由于可能丢失数据,无法转换该值。”。

[OLE DB Destination [59]]错误:SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “OLE DB Destination.Inputs [OLE DB目标输入]”失败,因为发生错误代码0xC0209077,并且“OLE DB Destination.Inputs [OLE DB目标输入]”上的错误行处置指定错误时失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

* [SSIS.Pipeline]错误:SSIS错误代码DTS_E_PROCESSINPUTFAILED。组件“OLE DB目标”(59)上的ProcessInput方法在处理输入“OLE DB目标输入”(72)时失败,错误代码为0xC0209029。标识的组件从ProcessInput方法返回错误。该错误特定于组件,但错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。 *

之前发生过这种情况,我通过创建一个新的foreach循环来处理新格式的新文件(我看不到格式的任何变化,但是要继续)。

这是数据流的格式: enter image description here

这是派生列的图像 enter image description here

任何帮助将不胜感激!如果你需要我澄清任何事情,请告诉我。

1 个答案:

答案 0 :(得分:2)

您的列似乎有不同的顺序。我用管道替换了标签,得到了以下内容:

工作:

Staffordshire County Council|Staffordshire County Council Other|247 Cars Willenhall Ltd 15/06/2017|1126.97|Transport - Escorts|Transport - Escorts|opendatacommunities.org/id/county-council/staffordsh‌​ire

不工作:

Staffordshire County Council|Childrens Services SEND|247 Cars Willenhall Ltd|273.42|06/07/2017|Transport - Escorts|Transport - Escorts opendatacommunities.org/id/county-council/staffordsh‌​ire

在第一个日期是金额的另一边,似乎包含在“247 Cars Willenhall Ltd”字符串中。

如果通过右键单击最后两个组件之间的箭头并选择该选项来启用数据查看器,则可以清楚地了解这对数据流的影响(运行/调试程序包时)。 / p>