【发布时间】:2017-10-18 13:32:56
【问题描述】:
是的,所以我有一个 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].Columns[Amount] on OLE DB Destination.Inputs[OLE DB Destination Input] 出现错误。返回的列状态为:“由于可能丢失数据,无法转换该值。”。
[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 方法返回错误。该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。 *
以前发生过这种情况,我通过创建一个新的 foreach 循环来处理具有新格式的新文件来解决它(我看不到格式有任何变化,但它继续进行)。
任何帮助将不胜感激!如果您需要我澄清任何事情,请告诉我。
【问题讨论】:
-
它似乎指的是不同的列:
Columns[Amount]。这是什么专栏? -
这是一个货币列,我只是再次检查以确保有效文件和无效文件之间的格式没有区别
-
一个货币价值通过而另一个货币价值失败的例子是什么?
-
它会很高兴地通过 1126.97 但不是 1148.58,这是 CSV 中第一个失败的。
-
目标列的数据类型是什么?您是否尝试过在“编辑列显示”和“OLE DB 目标”之间启用数据查看器?
标签: sql-server database date ssis derived-column