使用VS 2005开发SSIS包时,我为oledb teradata提供程序设置了连接管理器,并添加了oledb源和目标。对于oledb源,我使用数据访问模式作为sql命令并添加了sql命令文本。但是当我尝试进行列映射时,我收到一条错误消息,详情如下。
所有交易中的错误[OLEDB来源[1627]]:
An OLEDB error has occurred. Error code: 0x80040E21.
An OLE DB record is available. Source: "OLE DB Provider for Teradata" Hresult:
0x80040E21 Description: "Multiple-step OLE DB operation generated errors. Check
each OLE DB status value, if available. No work was done.".
其他信息:
Exception from HRESULT: 0xC0202009 (Microsoft.SqlServer.DTSPipelineWrap)
按钮:
OK
请让我知道为什么会出现这样的错误。我有一个解决方法,描述如下。
当您将sql存储在(
和)
中并对查询进行别名并将数据访问模式设置为表名或视图名称变量时,它可以正常工作。
答案 0 :(得分:0)
如果没有关于OLEDB源组件中使用的SQL的更多信息,我可以尝试猜测。也许问题在于返回具有相同名称或类似情况的列的SQL会导致元数据不正确。
答案 1 :(得分:0)
我刚收到此错误,我只是将提供程序编辑到另一个提供程序,进行测试,然后将其设置回原始提供程序。在我的情况下,我使用的是OLEDB Native客户端11,因此我将其设置为10,然后再将其设置为11.
我的猜测是,由于我的软件包一直在工作,XML因此被破坏了。