我正在调用一个返回引用游标的函数,并且我正在使用XMLType.createxml
将结果转换为 XML,例如
select XMLType.createxml(package_name.storedProcName('PARAM1', 'PARAM2', 'PARAM3')) as sresult from dual;
但是,我发现这有一个不受欢迎的副作用。用于检索 XMLType 数据的游标似乎从未关闭。使用此技术多次调用该函数后,我总是遇到以下错误:
ORA-01000: maximum open cursors exceeded
我没有光标的句柄,因此我无法手动关闭它。此外,我们使用的是池连接,因此没有连接重置,这些游标可以自动释放。关于这个还能做什么?
这是我的 Oracle 版本(从 v$version 返回):
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
PL/SQL Release 10.2.0.5.0 - Production
CORE 10.2.0.5.0 Production
TNS for HPUX: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production
(对于那些感兴趣的人,这里是我之前与 XMLType 相关的问题的链接。)