如何将 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)?
最佳答案
你不能。 Oracle 的 JDBC 驱动程序不正确支持 JDBC XML 类型。
您唯一可以做的就是将 XML 转换为查询的一部分:
SELECT to_clob(XMLElement("name")) from dual
然后您可以使用 getString() 检索 XML
或者,您也可以使用 XMLElement("name").getClobVal()
,但这同样是您查询的一部分,并且可以从您的 Java 类中将其作为字符串访问
关于Java:Oracle XMLType + JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4318900/