最近遇到一个需求:从数据库里面取数据并生成.xml格式的文件。这边的方法是通过 select xmlelement("",column_name) from table_name 取到一个xml格式的数据,然后在java中转成String再写到本地文件中(因为本人技术不高,不知道其他办法,所以就只能多绕一点路来实现目的)。
在实现的过程中遇到了一个问题。在JAVA中,获取到查询的值的类型是oracle.sql.OPAQUE,并不能直接转化成String类型。一开始发现了数据库中的to_clob()函数,所以将查询语句改成了 select to_clob(xmlelement("",column_name)) from table_name ,这是在java a中获取到的就是 java.sql.clob类型,这时再将java.sql.clob转化成String类型来达到目的。但是在这边有遇到一个问题,数据库中使用to_clob()会出现一个问题:ora-19011:字符缓冲区太小 。这样导致内容获取不到。所以只能把SQL语句上的to_clob()去掉。这时又去找oracle.sql.OPAQUE转化成String的方法,找了很久总算找到:
XMLType xt = XMLType.createXML(oracle.sql.OPAQUE);
String str = xt.getStringVal();
其中XMLType引用的是oracle.xdb.XMLType
需要导入的jar包有:
xdb.jar : 可以去ORACLE官网上进行下载
xmlparserv2.jar :这个可以百度下
2017-12-29 16:18:57