Java:Oracle XMLType + JDBC

Xor*_*rty 5 java xml oracle jdbc

如何将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 ?
Run Code Online (Sandbox Code Playgroud)

基本上,我想读取类似<name> </name>XML或任何XML格式的输出.但我总是无法将输出转化为合理的.只有奇怪的oracle.sql.OPAQUE有效,但我完全不知道如何处理它.甚至toString()没有覆盖!

有任何想法吗?如何阅读Oracle(我使用的是Oracle 10.0.2)XMLElement(XMLType)?

a_h*_*ame 11

你不能.Oracle的JDBC驱动程序不能正确支持JDBC XML类型.

您唯一能做的就是将XML转换为查询的一部分:

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

然后你可以使用getString()检索XML

您也可以使用XMLElement("name").getClobVal(),但这也是您的查询的一部分,它可以从您的Java类中作为String访问