NC56 ORA-01000超出打开游标的最大数

        2020-11-21 14:00开始,启动VMware虚拟机(WIN2003+Oracle10+NC56),在客户端连做了5个采购订单、到货、采购入库、单品核价,每个订单到货数量120个,带批次管理的。只是单机使用竟然出现了ORA-01000超出打开游标的最大数错误!!!等了几分钟再操作,又可以了。

 

 

上网查了一下ORACLE的游标问题排查方法:

1、检查数据的游标数(在sqlplus下):

SQL> show parameter open_cursors;

我虚拟机里是300;可能有点小了。

2. 获取打开的游标数。
 1 /* Formatted on 2020/11/22 09:14:56 (QP5 v5.326) */
 2   SELECT s.USERNAME,
 3          S.sid,
 4          s.SERIAL#,
 5          p.SPID,
 6          osuser,
 7          machine,
 8          COUNT (*)     num_curs
 9     FROM v$open_cursor o, v$session s, v$process p
10    WHERE o.sid = s.sid AND p.ADDR = s.PADDR
11 GROUP BY s.USERNAME,
12          S.sid,
13          s.SERIAL#,
14          p.SPID,
15          osuser,
16          machine
17 ORDER BY num_curs DESC;

检查发现用户giant下有一个sid使用的游标特别多;

3、使用在以上查询结果中找到的 SID ,查询打开最多游标的用户,看看在干什么!运行下面的查询(其中o.sid从上面的查询得到): 
/* Formatted on 2020/11/22 09:16:38 (QP5 v5.326) */
SELECT o.USER_NAME, q.sql_text
  FROM v$open_cursor o, v$sql q
 WHERE q.hash_value = o.hash_value AND o.sid = 138;

  把客户端退了,然后什么没有操作,半个小时后游标开的还是那么多!!!对NC比较无语。

另记:

2020-11-22,再做一个测试,因为我的游标是300,直接设置一次性到货数360,一个采购入库操作(先自动取数OK,保存OK,签字时,就出下面错误了!!!)

 

 不太清楚是NC的BUG,还是因为游标设置的问题?

 

posted @ 2020-11-21 15:45  悠灵  阅读(533)  评论(0编辑  收藏  举报