Проблемы с открытым курсором Oracle

У меня есть проболема с моим 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 

Итак, вот вопрос, как я могу получить эту проблему, и что-то не так с запросами выше?

0 ответов

Другие вопросы по тегам