哪些连接没有关闭可以通过下面的语句来查询:
select * from v$open_cursor where user_name='**'
http://www.itpub.net/thread-996539-1-1.html
open的cusor只有在所有引用了它的session都disconnect的情况下,才会关闭cursor。
可以试一下。
select count(*) from v$open_cursor;得到结果,比如15。
然后开一个session,执行:select count(*) from hr.employees where employee_id=110;
然后select count(*) from v$open_cursor;得到结果,这时为16。
然后将执行select count(*) from hr.employees where employee_id=110;的session关闭:disconnect
这时再执行select count(*) from v$open_cursor;得到结果,就为15了。
http://www.itpub.net/19466.html
最大允许的游标数,和开发的程序关系比较大,如果程序中打开的游标数达到最大,将抛出异常,不过在程序中比如java中,要记得将用完的statement对象及时关闭就可以了,而且statement对象最好不在循环中创建,否则创建一个就打开一个游标,循环几下就到了最大游标数。