DTS_E_OLEDBERROR。错误代码:0x80004005.SQl Native客户端和sql server的oledb提供程序之间的差异

时间:2014-02-06 13:07:28

标签: sql-server oledb ssis dts

在SSIS数据流组件中使用SQL Server Native Client 10时出现通信链接错误。

  

错误:SSIS错误代码DTS_E_OLEDBERROR。 OLE DB错误   发生了。错误代码:0x80004005。 OLE DB记录可用。   来源:“Microsoft SQL Server Native Client 10.0”Hresult:0x80004005   说明:“通信链接失败”。一个OLE DB记录是   可用。来源:“Microsoft SQL Server Native Client 10.0”   Hresult:0x80004005描述:“TCP Provider:指定的网络   名称不再可用。

所以我从SQL Server Native Client 10更改为Microsoft OLEDB Provider for SQL Server,希望它能正常运行。这次出现了错误,如下所示:

  

[Transacn_Tbl1 [737]]错误:SSIS错误代码DTS_E_OLEDBERROR。一个OLE   发生了DB错误。错误代码:0x80004005。 OLE DB记录是   可用。来源:“用于SQL Server的Microsoft OLE DB提供程序”   Hresult:0x80004005描述:“SQL上发生了未指定的错误   服务器。连接可能已被服务器终止。“。

     

[Transacn_Tbl1 [737]]错误:SSIS错误代码   DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “输入”OLE DB目标   输入“(750)”失败,因为错误代码0xC020907B发生,并且   “输入”上的错误行处置OLE DB目标输入“(750)”   指定错误失败。指定对象发生错误   指定组件的。之前可能会发布错误消息   这有关于失败的更多信息。

这两个提供商有什么区别?我应该使用哪一个?

2 个答案:

答案 0 :(得分:1)

在向生产环境发布新的SSIS项目之后,我遇到了这个问题。

起初,我能够成功验证程序包,但是当我尝试执行程序包时,我收到了DTS_E_OLEDBERROR. Error code: 0x80004005.消息。

我尝试通过将服务器名和密码变量设置为“敏感”来验证软件包,但是在这种情况下,验证也失败了。

将环境变量重新设置为不敏感并插入环境变量值后,我能够验证并执行该程序包。

在我看来,SSISDB中的元数据似乎已损坏,但是很遗憾,我无法指出此问题的根源。

我希望这会对某人有所帮助。在结束这个(相当不令人满意的)解决方案之前,我已经经历了很多调试方案。

答案 1 :(得分:0)

看起来您必须解决此问题,您必须更改SQL Server代理服务启动帐户的Temp目录的权限。将读取权限和写入权限授予此目录的SQL Server代理代理帐户。

http://support.microsoft.com/kb/933835