oracle异常80004005

本文详细介绍了在使用MSOracleOLEDBProvider版本2.10.3912.0及以上时遇到内存不足错误的解决办法。主要涉及到减少SQL语句中的参数数量以避免错误,或选择ODBC的微软OLEDB提供程序,通过ODBC驱动程序连接Oracle数据库,以优化内存使用并避免OLEDB错误0x80004005。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.处理:你的服务器主机名是不是带了下划线_ ,不要带。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

资料说明:

症状

The following error message may appear when 5000 records or more are retrieved, and when each record contains 4 bytes of data:

以下错误消息时可能会出现5000个或更多的记录被找回,当每个记录包含4字节的数据:

8007000e Not enough storage is available to complete this operation.

8007000e没有足够的存储空间来完成这个操作。

With a client-side cursor (in other words, when an ActiveX Data Objects (ADO) Recordset's CursorLocation property is set to adUseClient), the following error occurs instead:

一个客户端游标(换句话说,当一个ActiveX数据对象(ADO)记录集的CursorLocation属性设置为aduseclient),而不是发生下列错误:

80004005 Data provider or other service returned an E_FAIL status

80004005数据供应商或其他服务返回一个e_fail状态

Note that the computer is not really out of memory. Microsoft OLE DB Provider for Oracle and its internal algorithm, which attempts to allocate a buffer to hold the rows, fails

if the rowset size is 4 bytes or less.

值得注意的是,电脑是不是真的记忆。微软的OLE DB提供者Oracle和其内部的算法,它试图分配一个缓冲区持行,失败如果行集的大小是4字节或更少。

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

SYMPTOMS

症状

A call to certain stored procedures that contain parameters may fail, resulting in OLE DB error 0x80004005 when using the Microsoft OLEDB Provider for Oracle older than

version 2.10.3912.0.

调用特定的存储过程包含的参数可能会失败,导致在OLE DB错误0x80004005当使用微软OLEDB提供程序版本2.10.3912.0比年长的Oracle。

CAUSE

原因

In the MS Oracle OLEDB Provider at times there is not enough memory allocated to handle stored procedure parameters of a specific cumulative size or greater. This condition

appears to generate an Oracle error 6215, but the provider does not trap for this particular error and simply fails the call with the generic "0x80004005 Errors occurred" error.

在MS Oracle OLEDB提供程序有时没有足够的内存分配给处理特定的累积大小或更大的存储过程参数。这种情况似乎产生一个Oracle错误6215,但提供者不为这个特定

的错误陷阱不调用通用的“0x80004005发生错误”错误。

RESOLUTION

分辨率

It is possible to reduce the number of parameters in your SQL Statement and thereby avoid this error. Or you can choose to select the Microsoft OLEDB Provider for ODBC, so

you may connect to the Oracle database through an Oracle ODBC driver.

它可以减少在你的SQL语句的参数的数量,从而避免此错误。或者你可以选择ODBC的微软OLEDB提供程序,所以你可以通过Oracle的ODBC驱动程序连接到Oracle数据

库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木鱼-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值