oracle Clob类型转换成String类型 Clob类型转换成String类型

转载:https://www.cnblogs.com/itmyhome/p/4131339.html

Clob类型转换成String类型

oracle中表结构如下:

  1. create table GRID_RESOURCE  
  2. (  
  3.   ID         VARCHAR2(50),  
  4.   CNNAME     VARCHAR2(50),  
  5.   TYPE       VARCHAR2(50),  
  6.   PARENTID   VARCHAR2(50),  
  7.   VIEWWIDTH  VARCHAR2(50),  
  8.   REQUESTURL VARCHAR2(256),  
  9.   COUNTSQL   CLOB,  
  10.   ISDISPLAY  VARCHAR2(50),  
  11.   TREEINDEX  VARCHAR2(256),  
  12.   TABLES     VARCHAR2(256),  
  13.   NOTE3      VARCHAR2(256)  
  14. )  
COUNTSQL字段为CLOB类型,索引为6
[java]  view plain copy print ?
  1. import java.io.BufferedReader;  
  2. import java.io.IOException;  
  3. import java.io.Reader;  
  4. import java.sql.Clob;  
  5. import java.sql.SQLException;  
  6. import java.util.ArrayList;  
  7. import java.util.HashMap;  
  8. import java.util.List;  
  9. import java.util.Map;  
  10.   
  11. import org.hibernate.SessionFactory;  
  12. import org.hibernate.cfg.Configuration;  
  13.   
  14. public class T {  
  15.   
  16.     public static final SessionFactory sessionFactory;  
  17.     static {  
  18.         try {  
  19.             sessionFactory = new Configuration().configure()  
  20.                     .buildSessionFactory();  
  21.         } catch (Throwable ex) {  
  22.             throw new ExceptionInInitializerError(ex);  
  23.         }  
  24.     }  
  25.   
  26.     /** 
  27.      * @param args 
  28.      */  
  29.     public static void main(String[] args) {  
  30.         new T().getList();  
  31.     }  
  32.   
  33.     public void getList() {  
  34.         String querySQL = "select * from GRID_RESOURCE";  
  35.         String countSQL = "";  
  36.         List<Object[]> list = new ArrayList<Object[]>();  
  37.         // List o_list = new ArrayList();  
  38.         try {  
  39.             list = sessionFactory.openSession().createSQLQuery(querySQL).list();  
  40.             for (Object[] obj : list) {  
  41.                 Map<String, Object> map = new HashMap<String, Object>();  
  42.                 Clob sc = (Clob) obj[6];  
  43.                 countSQL = ClobToString(sc);  
  44.                 System.out.println(countSQL);  
  45.             }  
  46.             // 另一个遍历方法  
  47.             /* 
  48.              * for(Object obj:o_list){ Object oo[] = (Object[])obj; 
  49.              * System.out.println(oo[6]); } 
  50.              */  
  51.         } catch (Exception e) {  
  52.             e.printStackTrace();  
  53.         }  
  54.     }  
  55.   
  56.     // 将字Clob转成String类型  
  57.     public String ClobToString(Clob sc) throws SQLException, IOException {  
  58.         String reString = "";  
  59.         Reader is = sc.getCharacterStream();// 得到流  
  60.         BufferedReader br = new BufferedReader(is);  
  61.         String s = br.readLine();  
  62.         StringBuffer sb = new StringBuffer();  
  63.         while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING  
  64.             sb.append(s);  
  65.             s = br.readLine();  
  66.         }  
  67.         reString = sb.toString();  
  68.         return reString;  
  69.     }  
  70.   
  71. }  

oracle中表结构如下:

  1. create table GRID_RESOURCE  
  2. (  
  3.   ID         VARCHAR2(50),  
  4.   CNNAME     VARCHAR2(50),  
  5.   TYPE       VARCHAR2(50),  
  6.   PARENTID   VARCHAR2(50),  
  7.   VIEWWIDTH  VARCHAR2(50),  
  8.   REQUESTURL VARCHAR2(256),  
  9.   COUNTSQL   CLOB,  
  10.   ISDISPLAY  VARCHAR2(50),  
  11.   TREEINDEX  VARCHAR2(256),  
  12.   TABLES     VARCHAR2(256),  
  13.   NOTE3      VARCHAR2(256)  
  14. )  
COUNTSQL字段为CLOB类型,索引为6
[java]  view plain copy print ?
  1. import java.io.BufferedReader;  
  2. import java.io.IOException;  
  3. import java.io.Reader;  
  4. import java.sql.Clob;  
  5. import java.sql.SQLException;  
  6. import java.util.ArrayList;  
  7. import java.util.HashMap;  
  8. import java.util.List;  
  9. import java.util.Map;  
  10.   
  11. import org.hibernate.SessionFactory;  
  12. import org.hibernate.cfg.Configuration;  
  13.   
  14. public class T {  
  15.   
  16.     public static final SessionFactory sessionFactory;  
  17.     static {  
  18.         try {  
  19.             sessionFactory = new Configuration().configure()  
  20.                     .buildSessionFactory();  
  21.         } catch (Throwable ex) {  
  22.             throw new ExceptionInInitializerError(ex);  
  23.         }  
  24.     }  
  25.   
  26.     /** 
  27.      * @param args 
  28.      */  
  29.     public static void main(String[] args) {  
  30.         new T().getList();  
  31.     }  
  32.   
  33.     public void getList() {  
  34.         String querySQL = "select * from GRID_RESOURCE";  
  35.         String countSQL = "";  
  36.         List<Object[]> list = new ArrayList<Object[]>();  
  37.         // List o_list = new ArrayList();  
  38.         try {  
  39.             list = sessionFactory.openSession().createSQLQuery(querySQL).list();  
  40.             for (Object[] obj : list) {  
  41.                 Map<String, Object> map = new HashMap<String, Object>();  
  42.                 Clob sc = (Clob) obj[6];  
  43.                 countSQL = ClobToString(sc);  
  44.                 System.out.println(countSQL);  
  45.             }  
  46.             // 另一个遍历方法  
  47.             /* 
  48.              * for(Object obj:o_list){ Object oo[] = (Object[])obj; 
  49.              * System.out.println(oo[6]); } 
  50.              */  
  51.         } catch (Exception e) {  
  52.             e.printStackTrace();  
  53.         }  
  54.     }  
  55.   
  56.     // 将字Clob转成String类型  
  57.     public String ClobToString(Clob sc) throws SQLException, IOException {  
  58.         String reString = "";  
  59.         Reader is = sc.getCharacterStream();// 得到流  
  60.         BufferedReader br = new BufferedReader(is);  
  61.         String s = br.readLine();  
  62.         StringBuffer sb = new StringBuffer();  
  63.         while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING  
  64.             sb.append(s);  
  65.             s = br.readLine();  
  66.         }  
  67.         reString = sb.toString();  
  68.         return reString;  
  69.     }  
  70.   
  71. }  

猜你喜欢

转载自www.cnblogs.com/ConfidentLiu/p/10282935.html