sql-server - CSV 文件上的 SSIS Foreach 循环错误

标签 sql-server database date ssis derived-column

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

问题是有些文件会抛出错误,即使这些文件的格式完全相同,错误总是在日期附近。它将毫无问题地检查 4 个文件,然后在第 5 个文件上停止工作。

我想做什么?

  • 我想获取大量相同格式的文件,并在更改某些格式的同时将其中的数据放入 SQL 数据库。

我尝试过什么?

  • 我尝试将日期重新格式化为 dd/mm/yyyy,这是我希望日期采用的格式。 重新格式化有效,但在出现类型转换错误之前,同一文件出现了错误。

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

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

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

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

它以前发生过,我通过创建一个新的 foreach 循环来处理新格式的新文件来绕过它(我看不到格式有任何变化,但这样做是为了继续)。

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

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

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

最佳答案

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

工作:

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”字符串中。

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

关于sql-server - CSV 文件上的 SSIS Foreach 循环错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46811441/

相关文章:

java - 驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server 建立安全连接。错误 : "Server key"

javascript - 在 Safari 中使用 Javascript 的 new Date()

android - Room - 是否可以在查询中使用 OFFSET 和 FETCH NEXT?

php - 使用 PHP strftime() 使用 date() 格式化字符串

excel - 将今天的数据与同一天/同一时间但上周的数据进行比较

sql-server - SSIS读取文件修改日期

sql-server - DSC 配置故障排除

sql - 聚合自引用表

PHP 使用 PDO 搜索数据库

mysql - 操作数应包含 1 列 if 子句