> 데이터 베이스 > MySQL 튜토리얼 > Oracle 10g与11g中的一个函数wmsys.wm_concat 的不同返回值

Oracle 10g与11g中的一个函数wmsys.wm_concat 的不同返回值

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-07 17:59:04
원래의
1573명이 탐색했습니다.

wmsys.wm_concat的作用是将多行合并为一行,如一个人买了3只股票A,B,C 正常我们会记录成三条数据,现在要以一条数据显示该人的股票,这是wmsys.wm_concat方法就有用了。 但是,在Oracle 10G中该方法返回值可直接转为String后使用,但是在11G中却是Clob类型,我们必

wmsys.wm_concat的作用是将多行合并为一行,如一个人买了3只股票A,B,C 正常我们会记录成三条数据,现在要以一条数据显示该人的股票,这是wmsys.wm_concat方法就有用了。

但是,在Oracle 10G中该方法返回值可直接转为String后使用,但是在11G中却是Clob类型,我们必须将clob转为String 或其他类型后才可以使用。

/**
-


     * 将CLOB转成String ,静态方法
     * @param clob 字段
     * @return 内容字串,如果出现错误,返回null
     */
    public final static String clob2String(Clob clob){
      if (clob == null){
        return null;
      }
      StringBuffer sb = new StringBuffer(65535);//64K
      Reader clobStream = null;//创建一个输入流对象
      try{
        clobStream = clob.getCharacterStream();
        char[] b = new char[60000];//每次获取60K
        int i = 0;
        while((i = clobStream.read(b)) != -1){
          sb.append(b,0,i);
        }
      }
      catch(Exception ex){
        sb = null;
      }
      finally{
        try{
          if (clobStream != null)
            clobStream.close();
        }
        catch (Exception e) {
        }
      }
      if (sb == null)
        return null;
      else
        return sb.toString();
    }
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿