Convert between CLOB/BLOB and String.

1. Use the dbms_lob.substr() method to convert the corresponding fields into strings as follows:

[html]  view plain copy  
  1. select dbms_lob.substr(content) from NEWS    

This method has a disadvantage. When the length of the content field exceeds a certain value, an error will be reported.

2. Get the Clob object, and get the field content by stream processing in Java, there is no length limit in this method

[html]  view plain copy  
  1. select content from NEWS  

[html]  view plain copy  
  1. // Convert word CLOB to STRING type   
  2.     public String ClobToString(Clob clob) throws SQLException, IOException {   
  3.           
  4.         String reString = "";   
  5.         java.io.Reader  is  =  clob .getCharacterStream();// Get the stream   
  6.         BufferedReader br = new BufferedReader(is);   
  7.         String s = br.readLine();   
  8.         StringBuffer sb = new StringBuffer();   
  9.         while (s != null) {// Execute the loop to take out all the strings and pay them to StringBuffer from StringBuffer to STRING   
  10.             sb.append(s);   
  11.             s = br.readLine();   
  12.         }   
  13.         reString = sb.toString();   
  14.         return reString;   
  15.     }   

The next point is to convert the object of the field obtained from the database into a Clob object, as follows:

[html]  view plain copy  
  1. String content = ClobToString((Clob)obj[1]);  

Among them, my obj is the field array obtained from the database, and obj[1] corresponds to the Clob object


String s1="走上编程不归路……";
         
  Clob c =newSerialClob(s1.toCharArray());//String 转 clob
  Blob b =newSerialBlob(s1.getBytes("GBK"));//String 转 blob
// 也可以这样不传字符集名称,默认使用系统的
//  Blob b = new SerialBlob(s1.getBytes());

  String clobString = c.getSubString(1, (int) c.length());//clob 转 String
  String blobString =newString(b.getBytes(1, (int) b.length()),"GBK");//blob 转 String
//  前面若没传入字符集名称,则这里也不需要传入,以免出错
//  String blobString = new String(b.getBytes(1, (int) b.length()));
  
        System.out.println(clobString);
        System.out.println(blobString);



    // Convert word CLOB to STRING type  
  1. String content = ClobToString((Clob)obj[1]); 

  1.     public String ClobToString(Clob clob) throws SQLException, IOException {   
  2.           
  3.         String reString = "";   
  4.         java.io.Reader is = clob.getCharacterStream();// 得到流   
  5.         BufferedReader br = new BufferedReader(is);   
  6.         String s = br.readLine();   
  7.         StringBuffer sb = new StringBuffer();   
  8.         while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由    StringBuffer转成STRING   
  9.             sb.append(s);   
  10.             s = br.readLine();   
  11.         }   
  12.         reString = sb.toString();   
  13.         return reString;   
  14.     }  





http://www.oschina.net/code/snippet_135225_5485
Personal classification:   java basic Oracle

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325533421&siteId=291194637