Я пытаюсь извлечь данные из XMLTYPE COLUMN "ATTRIBUTE_XML2" STORE AS SECUREFILE BINARY XML из базы данных Oracle 12C.
Я использую этот запрос выбора в моем коде:
select xmlserialize(document a.xmlrecord as clob) as xmlrecord from tablename
ResultSet rset = stmt.executeQuery();
OracleResultSet orset = (OracleResultSet) rset;
while (orset.next()) {
oracle.sql.CLOB xmlrecord = (oracle.sql.CLOB) orset.getClob(1);
Reader reader = new BufferedReader(xmlrecord.getCharacterStream());
}
Здесь "orset.getClob
" занимает больше памяти в базе данных Oracle, и мы выходим из памяти процесса в базе данных Oracle. В настоящее время у нас есть хранилище типов XML как CLOB, и бизнес заинтересован изменить его на BINARY XML.
Есть ли возможность извлечь двоичный XML из результирующего набора оракула?
Обратите внимание, что я пробовал "orset.getClob
", что приводит к ошибке памяти, так как он изменяет двоичный XML на clob.
Также пробовал с "XMLType xml = (XMLType) orset.getObject(1);
", это работает нормально, но для извлечения 1 миллиона записей XML требуется 27 минут.
Тогда как тот же миллион завершился за 5 минут, если хранилище табличного типа - CLOB вместо BINARY XML.
Есть ли какая-либо другая опция для получения BINARY XML?