oracle Clob类型转换成String类型

时间:2021-06-01 03:19:10

转载: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

  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. import org.hibernate.SessionFactory;
  11. import org.hibernate.cfg.Configuration;
  12. public class T {
  13. public static final SessionFactory sessionFactory;
  14. static {
  15. try {
  16. sessionFactory = new Configuration().configure()
  17. .buildSessionFactory();
  18. } catch (Throwable ex) {
  19. throw new ExceptionInInitializerError(ex);
  20. }
  21. }
  22. /**
  23. * @param args
  24. */
  25. public static void main(String[] args) {
  26. new T().getList();
  27. }
  28. public void getList() {
  29. String querySQL = "select * from GRID_RESOURCE";
  30. String countSQL = "";
  31. List<Object[]> list = new ArrayList<Object[]>();
  32. // List o_list = new ArrayList();
  33. try {
  34. list = sessionFactory.openSession().createSQLQuery(querySQL).list();
  35. for (Object[] obj : list) {
  36. Map<String, Object> map = new HashMap<String, Object>();
  37. Clob sc = (Clob) obj[6];
  38. countSQL = ClobToString(sc);
  39. System.out.println(countSQL);
  40. }
  41. // 另一个遍历方法
  42. /*
  43. * for(Object obj:o_list){ Object oo[] = (Object[])obj;
  44. * System.out.println(oo[6]); }
  45. */
  46. } catch (Exception e) {
  47. e.printStackTrace();
  48. }
  49. }
  50. // 将字Clob转成String类型
  51. public String ClobToString(Clob sc) throws SQLException, IOException {
  52. String reString = "";
  53. Reader is = sc.getCharacterStream();// 得到流
  54. BufferedReader br = new BufferedReader(is);
  55. String s = br.readLine();
  56. StringBuffer sb = new StringBuffer();
  57. while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING
  58. sb.append(s);
  59. s = br.readLine();
  60. }
  61. reString = sb.toString();
  62. return reString;
  63. }
  64. }