当前位置:   article > 正文

Java读取Oracle的Clob类型数据,由Clob转String

clob转string

目录

转化方法一(不推荐):拼接数据流

转化方法二(推荐):getSubString


问题场景:

        从Oracle读取出来的字段是Clob类型数据,因需要对其进行操作,则转成字符串类型

调用方法:

  1. Clob clobDDL = (Clob) map.get("ClobDDL");
  2. String str = ClobToString(clobDDL);

转化方法:

转化方法一(不推荐):拼接数据流

  可以通过stream流将clob字段,拼接起来,这样对于一些简单的数据是没有问题的,但是有时候会碰到clob字段的数据,带一些特殊字符,比如换行、空格等格式的话,解析出来的数据是不带空格和换行的,那这样的数据就是有问题的,和原来的不符合

  1. /**
  2. * clob转String
  3. *
  4. * @param clob
  5. * @return
  6. */
  7. public String ClobToString(Clob clob) {
  8. String reString = "";
  9. try {
  10. Reader is = clob.getCharacterStream();// 得到流
  11. BufferedReader br = new BufferedReader(is);
  12. String s = br.readLine();
  13. StringBuffer sb = new StringBuffer();
  14. while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING
  15. sb.append(s);
  16. s = br.readLine();
  17. }
  18. reString = sb.toString();
  19. } catch (Exception e) {
  20. log.error("Oracle数据由Clob类型转化String类型处理失败 原因={}", e.getMessage());
  21. throw new BizException("Oracle数据处理失败");
  22. }
  23. return reString;
  24. }

转化方法二(推荐):getSubString

可以直接通过clob的提供的方法进行处理,非常的方便,但是一定要注意判空,通过下面的这种方式处理,即使有换行、空格等特殊字符出现的时候,都能够原模原样的保存到新的字段当中

比如判空处理:

  1. /**
  2. * clob转String
  3. *
  4. * @param clob
  5. * @return
  6. */
  7. public String ClobToString(Clob clob) {
  8. String reString = "";
  9. try {
  10. reString = clob.getSubString((long) 1, (int) clob.length());
  11. } catch (Exception e) {
  12. log.error("Oracle数据由Clob类型转化String类型处理失败 原因={}", e.getMessage());
  13. throw new BizException("Oracle数据处理失败");
  14. }
  15. return reString;
  16. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/823142
推荐阅读
相关标签
  

闽ICP备14008679号