java处理Oracle中的clob转换成String

Oracle中的clob类型用来存储数据比较大的内容,将Oracle数据类型可以直接转换成varchar2,但是,varchar2的直接有限,只能使用substr,如:to_char(dbms_lob.substr(ter.content,2000));这样只可以显示clob字段的前2000个字符,对于大于2000个字符的内容显示不出来。可以换一种思路,在Java中把clob转换成string,一下提供两种方法:

一、读取数据流方法

    读取数据流的方法不可以使内容的样式被转化,此时应该参考第二种

[java]  view plain  copy
  1. public String ClobtoString(Clob clob){  
  2.     String reString = "";  
  3.     Reader is = null;  
  4.     try {  
  5.         is = clob.getCharacterStream();  
  6.     } catch (SQLException e) {  
  7.         e.printStackTrace();  
  8.     }  
  9.     // 得到流  
  10.     BufferedReader br = new BufferedReader(is);  
  11.     String s = null;  
  12.     try {  
  13.         s = br.readLine();  
  14.     } catch (IOException e) {  
  15.         // TODO Auto-generated catch block  
  16.         e.printStackTrace();  
  17.     }  
  18.     StringBuffer sb = new StringBuffer();  
  19.     while (s != null) {  
  20.         // 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING  
  21.         sb.append(s);  
  22.         try {  
  23.             s = br.readLine();  
  24.         } catch (IOException e) {  
  25.             // TODO Auto-generated catch block  
  26.             e.printStackTrace();  
  27.         }  
  28.     }  
  29.     reString = sb.toString();  
  30.     return reString;  
  31. }  




二、clob的getSubString方法


[java]  view plain  copy
  1. public String oracleClob2Str(Clob clob)  {  
  2.     try {  
  3.         return (clob != null ? clob.getSubString(1, (int) clob.length()) : null);  
  4.     } catch (SQLException e) {  
  5.         // TODO Auto-generated catch block  
  6.         e.printStackTrace();  
  7.     }  
  8.     return "";  
  9. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值