问题原因
rest接口编码缺陷导致
解决办法
- 查询数据库当前游标数是多少,一两百的话太小需要修改一般1000就够了
查看游标数
select count(*) from v$open_cursor;
设置为1000
alter system set open_cursors=1000 scope=both;
- 若还是报错超出打开最大游标数,需要找出具体sql查看,然后转对应业务开发
- 查看游标使用情况:
SELECT s.sid, s.serial#, s.username, a.value as "OPEN CURSOR COUNT"
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'
AND s.username IS NOT NULL
ORDER BY a.value desc;
- 从上一步获得open cursor高的sid,带入下面的sql进行查询:
SELECT sid ,sql_text, user_name, count(*) as "OPEN CURSORS"
FROM v$open_cursor
WHERE sid IN ($SID)
GROUP BY sid ,sql_text, user_name;