有事在Oracle中会出现游标越界的错误,这个可能造成的原因是因为代码中实例化了一个PrepareStatement但是却没有及时关闭造成的。
可以
SELECT OC.SID, OC.USER_NAME, ST.SQL_TEXT, OC.NUM_CURSORS
FROM V$SQL ST
INNER JOIN (
SELECT SID, USER_NAME, ADDRESS, HASH_VALUE, COUNT(*) NUM_CURSORS
FROM V$OPEN_CURSOR
GROUP BY SID, USER_NAME, ADDRESS, HASH_VALUE
HAVING COUNT(*) > 1
) OC
ON OC.ADDRESS = ST.ADDRESS
AND OC.HASH_VALUE = ST.HASH_VALUE where oc.user_name='WEB_DEVOPS'
ORDER BY OC.NUM_CURSORS desc;
查询用户空间的游标打开游标的情况查看sql_next中的sql定位是哪个存储过程造成的问题。然后再在代码中定位查找