Я использую приведенный ниже запрос выбора оракула в моем java-приложении
select a.xmlrecord.getClobVal() xmlrecord from tablename where ID like 'ABC%' order by ID
После выполнения запроса выбора я получаю вывод с использованием приведенного ниже кода и закрываю набор результатов и соединение в блоке finally
Reader reader = new BufferedReader(orset.getCharacterStream("xmlrecord"));
Внезапно я столкнулся с приведенной ниже ошибкой, как показано ниже
java.sql.SQLException: ORA-04068: existing state of packages has been discarded
ORA-04030: out of process memory when trying to allocate 107112 bytes
Я проверил с моим администратором базы данных, и он настоял, чтобы ошибка произошла из-за того, что код JDBC вызывает getclobVal () для xmltypeи нет никакой проверки, чтобы видеть, является ли это временным объектом и нет кода, чтобы освободить его явно.
Есть ли что-то, что нам нужно закрыть для объектов Clob в конце метода.Обратите внимание, что я просто использую clobval () только в своем запросе, а не где-либо еще, и я не создаю никакого объекта Clob / lob в своем коде.
Пожалуйста, предоставьте свои данные по вышеуказанной ошибке.