对,所以我有一个 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 Destination [59]] 错误:OLE DB Destination.Inputs[OLE DB Destination Input].Columns[Amount] 上的 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 循环来处理具有新格式的新文件来解决它(我看不到格式有任何变化,但它继续进行)。
任何帮助将不胜感激!如果您需要我澄清任何事情,请告诉我。