如何将oracle 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()
也未被覆盖!
有什么想法吗?如何阅读Oracle(我使用的是Oracle 10.0.2)XMLElement(XMLType)?
答案 0 :(得分:11)
你做不到。 Oracle的JDBC驱动程序不能正确支持JDBC XML类型。
您唯一能做的就是将XML转换为查询的一部分:
SELECT to_clob(XMLElement("name")) from dual
然后,您可以使用getString()
检索XML或者您也可以使用XMLElement("name").getClobVal()
,但这也是您的查询的一部分,它可以从Java类中作为String访问
答案 1 :(得分:1)
ORA-1652:无法在表空间temp中扩展临时段128 完全不同的错误,与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