Java:Oracle XMLType + JDBC

标签 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 ?

基本上,我想读取像 <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/

相关文章:

sql - 奥拉 :00936 Missing Expression error

java - 尝试在 JSP 中访问 "response"时出现 NullPointerException

c# - XPathNodeIterator 从迭代数据访问子节点

java - 不再能够在 android studio 中查看设计选项卡

java - 取消选择 ListView 中的项目

sql - oracle pl/sql ORA-01790 : expression must have same datatype as corresponding expression

sql - 设置LD_BIND_NOW变量解决TNS Linux Error : 29: Illegal seek error

java - 如何从两个GPS坐标计算方向的角度

java - Spring MVC 如何从 Controller 访问静态资源

java - Java 后端中正确(且快速)的参数检查