oracle – 麻烦射击ora-29471

oracle – 麻烦射击ora-29471,第1张

概述某些会话导致ORA-29471,因为dbms_sql无法用于这些会话.我们在应用程序中遇到此错误的记录很少. 如何解决这个问题? 我们如何识别特定会话无法访问DBMS_SQL?我们在会话级别有任何属性/标志吗? 下面的链接提供了一种在本地重现此问题的方法. Reproduce 错误发生在运行时.你可能无法猜测它会在它发生之前发生.也许您的解决方案是使用要打开dbms_sql.is_open(c_i @H_403_4@ 某些会话导致ORA-29471,因为dbms_sql无法用于这些会话.我们在应用程序中遇到此错误的记录很少.

如何解决这个问题?
我们如何识别特定会话无法访问DBMS_sql?我们在会话级别有任何属性/标志吗?

下面的链接提供了一种在本地重现此问题的方法.
Reproduce

@H_403_4@解决方法 错误发生在运行时.你可能无法猜测它会在它发生之前发生.也许您的解决方案是使用要打开dbms_sql.is_open(c_ID)的游标ID进行单个块检查.

但如果这是你正在寻找的,这里是如何找到打开的游标列表:

select a.value,s.username,s.sID,s.serial#  from v$sesstat a,v$statname b,v$session s where a.statistic# = b.statistic#  and s.sID=a.sID   and b.name = 'opened cursors current';

您还可以访问v $open_cursor来计算它们:

SELECT *  FROM v$open_cursor oc,v$session s WHERE oc.sID = s.sIDorder by 3,2;

希望这可以帮助您调整一些东西来检查是否使用了预期的光标.

@H_403_4@ @H_403_4@ @H_403_4@ @H_403_4@ 总结

以上是内存溢出为你收集整理的oracle – 麻烦射击ora-29471全部内容,希望文章能够帮你解决oracle – 麻烦射击ora-29471所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166919.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存