DTS_E_OLEDBERROR,错误代码:0x80004005. SQL本机客户端和用于SQL Server的oledb提供程序之间的差异

xdyibdwo  于 2023-01-29  发布在  SQL Server
关注(0)|答案(4)|浏览(586)

在SSIS数据流组件中使用SQL Server Native Client 10时出现通信链接错误。
错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。OLE DB记录可用。源:"Microsoft SQL Server本机客户端10.0"结果:0x80004005描述:"通信链接失败"。OLE DB记录可用。源:"Microsoft SQL Server本机客户端10.0"结果:0x80004005描述:"TCP提供程序:指定的网络名称不再可用。
所以我从SQL Server Native Client 10更改为Microsoft OLEDB Provider for SQL Server,希望它能正常运行。这次得到了如下所示的错误:
[交易表1 [737]]错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。OLE DB记录可用。源:"用于SQL Server的Microsoft OLE DB提供程序"结果:0x80004005描述:"SQL Server上发生未指定的错误。连接可能已被服务器终止。"。
[交易表1 [737]]错误:SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR。输入的OLE DB目标输入(750)"失败,因为发生错误代码0xC020907B,以及"input" OLE DB目标输入"上的错误行处置(750)""指定出错时失败。指定组件的指定对象上发生错误。在此之前可能会发布错误消息,提供有关故障的详细信息。
这两个供应商之间有什么区别?我应该使用哪一个?

svgewumm

svgewumm1#

我在将一个新的SSIS项目发布到生产环境后遇到了这个问题。
起初,我能够成功地验证包,但是当我试图执行包时,我收到了DTS_E_OLEDBERROR. Error code: 0x80004005.消息。
我尝试在servername和password变量设置为sensitive的情况下验证包,但在本例中验证也失败了。
在将环境变量再次设置回非敏感并插入环境变量值之后,我能够验证和执行包。
在我看来,在某些情况下,SSISDB中的元数据似乎会损坏,但不幸的是,我还无法指出这个问题的根源。
我希望这能帮助到一些人,在我最终得到这个(相当不满意的)解决方案之前,我已经经历了很多调试场景。

dsf9zpds

dsf9zpds2#

似乎必须解决此问题,您必须更改SQL Server代理服务启动帐户对Temp目录的权限。将读取权限和写入权限授予SQL Server代理的代理帐户。
http://support.microsoft.com/kb/933835

mo49yndu

mo49yndu3#

我将连接更改为Provider=SQLNCLI11.1,并使用参数成功执行。

b4lqfgs4

b4lqfgs44#

DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005

这个模糊的错误也可能意味着一些良性的事情,比如OLE提供程序找不到预期的Excel工作表。
我最近在一个SSIS项目中遇到了这个错误,经过几个小时的努力,我认为是一些配置问题,结果是最终用户只是***更改了Excel数据源中的工作表名称***。
Microsoft消息传递FTW!

相关问题