Java:Oracle XMLType + JDBC [英] Java: Oracle XMLType + JDBC

查看:101
本文介绍了Java:Oracle XMLType + JDBC的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将oracle XMLElement送到JDBC?

  java.sql.Statement st = connection.createStatement(); //工作
oracle.jdbc.OracleResultSet rs = st.execute(SELECT XMLElement(name)FROM dual);
rs.getString(1); //返回null,为什么?
oracle.sql.OPAQUE =(OPAQUE)rs.getObject(1); //这有效,但wtf是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))来自双

然后你可以使用getString()<检索XML / p>

或者你也可以使用 XMLElement(name)。getClobVal(),但这又是你的一部分查询,它可以从Java类


中作为String访问

How can I get oracle XMLElement to 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 ?

Basically, I want to read String like <name> </name> or whatever XML formatted output. But I always fail to cast output to anything reasonable. Only weird oracle.sql.OPAQUE works, but I totally dont know what to do with that. Even toString() is not overriden!

Any ideas? How to read Oracle's (I am using Oracle 10.0.2) XMLElement (XMLType) ?

解决方案

You can't. Oracle's JDBC driver does not support the JDBC XML type properly.

The only thing you can do, is to convert the XML as part of the query:

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

Then you can retrieve the XML using getString()

alternatively you can also use XMLElement("name").getClobVal(), but again this is part of your query and it can be accessed as a String from within your Java class

这篇关于Java:Oracle XMLType + JDBC的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆