SSIS 目标插入错误
SSIS Destination Insert Error
包描述: 我使用来自一个数据库的源进行查找以获取代理地理键,然后另一个来检查客户是否存在,如果不存在则插入行更新行...
问题:我无法插入大约 700,000 行。
问题描述:我已经用数据查看器查看了很长时间,输出到平面文件,但找不到问题的原因。
从下面的错误,通过SSIS研究和检查我得出了一个空白。
Error: 0xC0209029 at DimCustomer, Dw_DimCustomer [2]: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "Dw_DimCustomer.Inputs[OLE DB Destination Input]" failed because error code 0xC020907B occurred, and the error row disposition on "Dw_DimCustomer.Inputs[OLE DB Destination Input]" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure.
Error: 0xC0047022 at DimCustomer, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Dw_DimCustomer" (2) failed with error code 0xC0209029 while processing input "OLE DB Destination Input" (15). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.
Error: 0xC02020C4 at DimCustomer, SQL_Customer [154]: The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020.
Error: 0xC0047038 at DimCustomer, SSIS.Pipeline: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on SQL_Customer returned error code 0xC02020C4. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
工作完成:
我已检查所有格式是否匹配,不会发生截断。
检查所有查找是否正常工作。
删除我的目标数据库(我在测试环境中,不用担心)并重新创建它。
我已检查所有正确的列是否在任务之间以正确的格式显示正确的数据。
我检查过唯一的错误来自最终的 OLE DB 目标输出(它是)。
我不确定去哪里,因为答案是 Whosebug。
我们将张开双臂欢迎任何指点、想法或帮助。
从您附上的图片来看,我认为您使用的是 SSIS 2012 或更高版本,经过搜索,有很多问题导致了这个问题。
您可以测试以下内容:
第一
如果您的服务器操作系统是 64 位的,请尝试 运行 您的 ssis 包在 64 位运行时。您可以关注此 link 了解更多详情。
第二
尝试用 SQL server Destination
替换 OLEDB Destination
并将 TIME OUT
设置为更高的值 (例如:500)
第三
你OLEDB Destination
尝试取消选中Check Constraints
复选框(错误可能是由约束引起的)
参考资料
第一个解决方法
- SSIS ERROR: The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020
第二种解决方法
附加信息
我认为这是主要的错误信息,您可以搜索它(如果没有从您的包裹中收到错误信息) 如果我的回答没有解决问题:
The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020
希望对您有所帮助
转到 DimCustomer 属性:
Make BufferMaxRows to 100. This might increase the execution time for the package as it will transfer only 100 row at a time using a less RAM at that instance.
如果这不起作用:
您可以为 For-loop 创建 go。每次运行时在 For-loop appdeing 100 行中添加相同的内容。总计数除以100就可以找到循环执行,一定对你有帮助!
当数据在到达数据流目的地之前损坏时会发生此错误。数据流意外发现 null 或空白或空值,您应该使用健康备份重新创建源数据库。
包描述: 我使用来自一个数据库的源进行查找以获取代理地理键,然后另一个来检查客户是否存在,如果不存在则插入行更新行...
问题:我无法插入大约 700,000 行。
问题描述:我已经用数据查看器查看了很长时间,输出到平面文件,但找不到问题的原因。
从下面的错误,通过SSIS研究和检查我得出了一个空白。
Error: 0xC0209029 at DimCustomer, Dw_DimCustomer [2]: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR. The "Dw_DimCustomer.Inputs[OLE DB Destination Input]" failed because error code 0xC020907B occurred, and the error row disposition on "Dw_DimCustomer.Inputs[OLE DB Destination Input]" specifies failure on error. An error occurred on the specified object of the specified component. There may be error messages posted before this with more information about the failure.
Error: 0xC0047022 at DimCustomer, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "Dw_DimCustomer" (2) failed with error code 0xC0209029 while processing input "OLE DB Destination Input" (15). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.
Error: 0xC02020C4 at DimCustomer, SQL_Customer [154]: The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020.
Error: 0xC0047038 at DimCustomer, SSIS.Pipeline: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on SQL_Customer returned error code 0xC02020C4. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.
工作完成:
我已检查所有格式是否匹配,不会发生截断。 检查所有查找是否正常工作。 删除我的目标数据库(我在测试环境中,不用担心)并重新创建它。 我已检查所有正确的列是否在任务之间以正确的格式显示正确的数据。 我检查过唯一的错误来自最终的 OLE DB 目标输出(它是)。
我不确定去哪里,因为答案是 Whosebug。
我们将张开双臂欢迎任何指点、想法或帮助。
从您附上的图片来看,我认为您使用的是 SSIS 2012 或更高版本,经过搜索,有很多问题导致了这个问题。
您可以测试以下内容:
第一
如果您的服务器操作系统是 64 位的,请尝试 运行 您的 ssis 包在 64 位运行时。您可以关注此 link 了解更多详情。
第二
尝试用 SQL server Destination
替换 OLEDB Destination
并将 TIME OUT
设置为更高的值 (例如:500)
第三
你OLEDB Destination
尝试取消选中Check Constraints
复选框(错误可能是由约束引起的)
参考资料
第一个解决方法
- SSIS ERROR: The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020
第二种解决方法
附加信息
我认为这是主要的错误信息,您可以搜索它(如果没有从您的包裹中收到错误信息) 如果我的回答没有解决问题:
The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020
希望对您有所帮助
转到 DimCustomer 属性:
Make BufferMaxRows to 100. This might increase the execution time for the package as it will transfer only 100 row at a time using a less RAM at that instance.
如果这不起作用:
您可以为 For-loop 创建 go。每次运行时在 For-loop appdeing 100 行中添加相同的内容。总计数除以100就可以找到循环执行,一定对你有帮助!
当数据在到达数据流目的地之前损坏时会发生此错误。数据流意外发现 null 或空白或空值,您应该使用健康备份重新创建源数据库。