我的 java 应用程序有问题。尽管我正在关闭所有连接语句和游标,但我收到 ORA-01000 最大游标打开错误,例如:
String proc = "{call sp_name(?)}";
Connection connection = getConnection();
if(connection == null)
throw new SQLException("Null connection");
CallableStatement procin = connection.prepareCall(proc);
if(procin == null)
throw new SQLException("Null statement");
procin.setInt(1,customerId);
procin.execute();
if(procin != null)
procin.close();
if(connection != null)
connection.close();
当我查询最大限制并打开游标时,我得到限制 400,打开游标 300。
select
max(a.value) as hwm_open_cur,
p.value as max_open_cur
from
v$sesstat a,
v$statname b,
v$parameter p
where
a.statistic# = b.statistic#
and
b.name = 'opened cursors current'
and
p.name= 'open_cursors'
group by p.value;
在其他情况下,当我查询与我相关的打开游标时,我只得到 11 个打开游标,因此我不明白我怎么会导致这种情况。
SELECT LAST_SQL_ACTIVE_TIME ,SQL_TEXT
FROM v$open_cursor WHERE UPPER(SQL_TEXT) LIKE '%COLL%' order by sql_text
所以这里的问题是我怎么能得到这个问题,上面的查询有问题吗?