Java: Oracle XMLType + JDBC - PullRequest
       9

Java: Oracle XMLType + JDBC

5 голосов
/ 01 декабря 2010

Как я могу получить оракула XMLElement в JDBC?

java.sql.Statement st = connection.createStatement(); // works
oracle.jdbc.OracleResultSet rs = st.execute("SELECT XMLElement("name") FROM dual");
rs.getString(1); // returns null, why?
oracle.sql.OPAQUE = (OPAQUE) rs.getObject(1); // this works, but wtf is OPAQUE ?

По сути, я хочу прочитать строку как <name> </name> или любой другой форматированный XML. Но я всегда не могу привести вывод к чему-либо разумному. Работает только странный oracle.sql.OPAQUE, но я совершенно не знаю, что с этим делать. Даже toString() не переопределяется!

Есть идеи? Как читать XMLElement Oracle (я использую Oracle 10.0.2) (XMLType)?

Ответы [ 2 ]

11 голосов
/ 01 декабря 2010

Вы не можете. Драйвер Oracle JDBC неправильно поддерживает тип XML JDBC.

Единственное, что вы можете сделать, - это преобразовать XML как часть запроса:

SELECT to_clob(XMLElement("name")) from dual

Затем вы можете получить XML, используя getString ()

в качестве альтернативы вы также можете использовать XMLElement("name").getClobVal(), но, опять же, это часть вашего запроса, и к нему можно получить доступ в виде строки из вашего Java-класса

1 голос
/ 18 января 2012

ORA-1652: неспособность расширить временной сегмент на 128 в табличном пространстве temp - это совершенно другая ошибка, ничего с XMLElement не может быть.временный файл для автоматического изменения размера или увеличения его размера:

 ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/product/10.2.0/db_1/oradata/oracle/temp01.dbf' SIZE 10M AUTOEXTEND ON

ALTER DATABASE TEMPFILE '/u01/app/oracle/product/10.2.0/db_1/oradata/oracle/temp01.dbf' RESIZE 200M
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...