JAVA oracle.sql.OPAQUE转String

最近遇到一个需求:从数据库里面取数据并生成.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

转载于:https://www.cnblogs.com/dudadi/p/8145389.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值