希望有人可以在这里提供帮助。
我的SSIS包(从Azure SQL数据库中直接获取行 - >加载到azure dwh中)在平稳运行2个月后突然停止工作。
插入(特定于OLE DB组件)现在失败并显示错误消息
SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误 代码:0x80004005。 OLE DB记录可用。来源:“Microsoft SQL Server Native Client 11.0”Hresult:0x80004005
描述:“源列和目标列在INSERT BULK语句中的顺序必须相同。”
使用SSDT为VS 2013开发软件包。没有重新编码或重新部署azure dwh,只是这个错误有一天出现了。
/梅德。
答案 0 :(得分:0)
我引用Rick He:
问题可能是您的数据库具有不区分大小写的排序规则,并且表DDL中指定的分发列名称是"不同的"根据列/小写的列名定义中的列名称。
例如,您的原始表DDL可能是:
使用(distribution = hash(colabc))
创建表tableA(colABC int)在这种情况下,您的BCP(SqlBulkCopy)可能最近停止工作。这是一个产品问题。最新的GA版本存在此问题,团队正在尝试解决此问题。
现在的解决方法:创建一个新表以确保列名完全相同。举个例子:
使用(distribution = hash(colABC))
创建表tableA(colABC int)