加载到azure dwh

时间:2016-07-17 13:48:39

标签: sql sql-server azure ssis oledb

希望有人可以在这里提供帮助。

我的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,只是这个错误有一天出现了。

/梅德。

1 个答案:

答案 0 :(得分:0)

我引用Rick He

问题可能是您的数据库具有不区分大小写的排序规则,并且表DDL中指定的分发列名称是"不同的"根据列/小写的列名定义中的列名称。

例如,您的原始表DDL可能是:

使用(distribution = hash(colabc))

创建表tableA(colABC int)

在这种情况下,您的BCP(SqlBulkCopy)可能最近停止工作。这是一个产品问题。最新的GA版本存在此问题,团队正在尝试解决此问题。

现在的解决方法:创建一个新表以确保列名完全相同。举个例子:

使用(distribution = hash(colABC))

创建表tableA(colABC int)