`

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

阅读更多
wmsys.wm_concat的作用是将多行合并为一行,如一个人买了3只股票A,B,C 正常我们会记录成三条数据,现在要以一条数据显示该人的股票,这是wmsys.wm_concat方法就有用了.
但是,在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();
    }
分享到:
评论

相关推荐

    重建WMSYS用户的WMSYS.WM_CONCAT函数的3个文件

    在Oracle数据库环境中,WMSYS.WM_CONCAT函数是一个用于字符串连接的实用工具,尤其在处理多值列时非常有用。然而,有时由于各种原因,这个函数可能丢失或损坏,需要进行重建。以下是对重建WMSYS.WM_CONCAT函数涉及的...

    ORA-00904 WMSYS.WM_CONCAT标识符无效解决方案

    在Oracle 10g及更早版本中,WMSYS.WM_CONCAT是一个实用的内置函数,允许用户将多个字符串合并成一个单一的字符串,类似于其他数据库系统中的CONCAT或者STRING_AGG函数。然而,由于性能和兼容性的问题,Oracle在11gR2...

    wmsys.wm_concat详细示例.txt

    在Oracle数据库中,`wmsys.wm_concat`是一个非常实用且强大的函数,主要用于将多个字符串连接成一个字符串。此函数常用于数据聚合场景,尤其是当需要在一个查询中汇总特定分组下的所有值时。根据给定文件的信息,...

    Oracle 11g 重建WMSYS.WM_CONCAT函数

    Oracle10g之后有些版本已不包含WMSYS.WM_CONCAT函数,若用到此函数, 系统会提示异常:ORA-00904: "WM_CONCAT": invalid identifier 因此需单独重建此函数,方法如下: 解压附件,在sqlplus中执行包里的owmctab....

    oracle行转列聚合函数WMSYS.WM_CONCAT

    `WMSYS.WM_CONCAT`函数是Oracle数据库中的一个内置函数,主要用于将多个字符串连接成一个单一的字符串。该函数特别适用于处理大量数据的聚合操作,尤其是在需要将多行记录转换为一行记录的情况下表现得尤为突出。 *...

    类似于wmsys.wm_concat的自定义函数clob版

    在Oracle数据库中,`WMSYS.WM_CONCAT`函数是一个非常实用的工具,它用于将多行数据合并成一个单行字符串。然而,由于其内部处理机制,当需要合并的数据量过大时,可能会遇到“字符串缓冲区太小”的错误。这是因为`WM...

    wmsys_wm_concat函数结果拆解

    在Oracle数据库中,`wmsys.wm_concat`是一个常用的数据处理函数,主要用于连接字符串。它能够接受多个参数,并将这些参数用逗号分隔的形式存储为一个字符串。此函数广泛应用于数据仓库或报表系统中,特别是在需要将...

    Oracle重建WMSYS用户及WMSYS.WM_CONCAT函数

    解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 在sqlplus中执行包里的owmctab.plb、owmaggrs.plb、owmaggrb.plb三个脚本即可。 简单来说,用PL/SQL执行下一下几个脚本就可以了。 特别要注意:PL/SQL登录时,要...

    wmsys 用户 没有WMSYS.WM_CONCAT方法

    没有WMSYS.WM_CONCAT方法 需要的文件 owmctab.plb owmaggrs.plb owmaggrb.plb 拷贝三个文件到 $ORACLE_HOME\RDBMS\ADMIN\ 目录下 打开命令行 sqlpus , 用sys 登陆 执行命令 @$ORACLE_HOME\RDBMS\ADMIN\owmctab.plb...

    Oracle重建WMSYS用户及WMSYS.WM_CONCAT函数(更低分)

    这个错误通常意味着试图访问或使用`WMSYS.WM_CONCAT`函数时遇到了问题,这是一个在早期Oracle版本中提供的聚合函数,用于字符串连接,但在较新的版本中被弃用并替换为其他更安全和高效的解决方案。 `WMSYS`是Oracle...

    ORA-00904: "WM_CONCAT": 标识符无效

    WM_CONCAT是Oracle 10g及更早版本中用于字符串合并的一个非标准函数,但在11g版本中被废弃,取而代之的是新的标准SQL聚合函数LISTAGG。 在Oracle 11g R2及更高版本中,WM_CONCAT函数不再可用,因此在19c中遇到这个...

    wmsys_wm_concat的几个用法

    wmsys_wm_concat的几个用法/wmsys_wm_concat的几个用法/wmsys_wm_concat的几个用法/wmsys_wm_concat的几个用法/wmsys_wm_concat的几个用法

    Oracle10g自定义聚合函数(字符串拼接)

    * 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100,可拼出超4000的超长字符串 * 可自定义指定分隔符separator * 可自定义指定排序字段sequence,对于数字或日期类型的...

    重建WMSYS用户.zip

    WMSYS.WM_CONCAT是Oracle Spatial中的一个函数,用于处理多行文本数据的连接操作,但在某些情况下可能会出现"标识符无效"的错误。这个问题通常出现在数据库升级、恢复或者对象权限出现问题时。 当您遇到“WMSYS.WM_...

    oracle中将列拼接字段函数

    与SQL中的`||`运算符不同的是,`WM_CONCAT`可以接受多个参数并将它们连接起来形成一个单一的字符串,特别适用于需要合并多个列值的情况。此函数通常用于返回一个由指定的列或表达式组成的列表,其中每个元素之间可以...

    oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼接在一起

    在Oracle数据库中,有时我们需要将多行记录合并成一个单一的字符串,以便于...不过,需要注意的是,从Oracle 11g R2版本开始,推荐使用`LISTAGG`函数代替`WM_CONCAT`,因为它更稳定,且支持更复杂的分组和排序操作。

    WMSYS 重建

    WMSYS.WM_CONCAT函数是这个系统中的一个重要组成部分,用于处理字符串的连接操作,尤其在数据仓库的ETL(Extract, Transform, Load)过程中十分常见。 当遇到“WMSYS 重建”的情况,通常是因为WMSYS.WM_CONCAT函数...

Global site tag (gtag.js) - Google Analytics