精华内容
下载资源
问答
  • oracle 12c 兼容 11g 的 wm_concat 方法。 oracle 12c wm_concat。 owmaggrb.plb,owmaggrs.plb,owmctab.plb 1、下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 2、用sqlplus登录:sqlplus sys/123 as...
  • Oracle10g之后有些版本已不包含WMSYS.WM_CONCAT函数,若用到此函数, 系统会提示异常:ORA-00904: "WM_CONCAT": invalid identifier 因此需单独重建此函数,方法如下: 解压附件,在sqlplus中执行包里的owmctab....
  • oracle wm_concat函数,用于列转行,逗号分隔本文将详细介绍此功能的应用
  • 1、下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 2、用sqlplus登录:sqlplus -logon sys/123 as sysdba 3、执行@C:\Users\JOYTRAVEL\Desktop\WMSYS用户\owmaggrb.plb; 如果执行结果报错,说找不...
  • 包含owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 三个文件,可解决OracleXE中没有WM_CONCAT函数的问题;解决方案如下:1、下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 2、用sqlplus登录:...
  • ORA-00904 WMSYS.WM_CONCAT标识符无效解决方案
  • oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle wm_concat(column)函数实现字段合并,如果您对oracle wm_concat(column)函数使用方面感兴趣的话,不妨一看。shopping:——————...
  • WM_CONCAT.zip

    2020-06-30 17:35:04
    解决oracle 11g 以上ora-00904:"WM_CONCAT" 报错,owmctab.plb、owmaggrs.plb、owmaggrb.plb包下载,具体执行可自行百度。
  • 主要解决oracle低版本(例如9i)无法使用WM_CONCAT函数实现多行字段拼接问题,参考附件中样例即可
  • 11gr2和12C上已经摒弃了wm_concat函数,当时我们很多程序员在程序中使用了该函数,导致程序出现错误,为了减轻程序员修改程序的工作量,只有通过手工创建个wm_concat函数,来临时解决该问题
  • owmaggrb.plb,owmaggrs.plb,owmctab.plb 1、下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 2、用sqlplus登录:sqlplus sys/123 as sysdba 3、执行@C:\Users\JOYTRAVEL\Desktop\WMSYS用户\owmaggrb....
  • NULL 博文链接:https://vernonchen163.iteye.com/blog/2177323
  • 由于业务系统的交易记录有很多,常常有些主管需要看到所有的记录情况;又不想滚动;接下来介绍使用Oracle自带的函数 WMSYS.WM_CONCAT,进行拼接,感兴趣的朋友可以了解下
  • 解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 在sqlplus中执行包里的owmctab.plb、owmaggrs.plb、owmaggrb.plb三个脚本即可。
  • Oracle新版中不支持 WM_CONCAT的处理方法,直接创建一个自定义函数代替
  • Oracle从12C版本开始,不支持wm_concat函数,我们可以采取的办法有使用listagg函数代替wm_concat函数,或者为了减小修改程序的工作量,可以通过手工创建wm_concat函数来解决这个问题。
  • 解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 在sqlplus中执行包里的owmctab.plb、owmaggrs.plb、owmaggrb.plb三个脚本即可。
  • ORA-06575: 程序包或函数 WM_CONCAT 处于无效状态;执行代码可以解决报错
  • wm_concat函数DDL.zip

    2020-08-06 13:18:23
    Oracle 11g之后取消了wm_concat函数,12C及以后版本需要使用的话,需要自定义新建这个函数,提供DDL给需要用到的兄弟们。
  • 大家用oracle数据库里面的wmsys.wm_concat函数有没有遇见过字符串缓冲区太小的情况? 针对这种情况我写了个自定义聚合函数 是clob版的。
  • 重建WMSYS用户的WMSYS.WM_CONCAT函数的3个文件重建WMSYS用户的WMSYS.WM_CONCAT函数的3个文件
  • 1. 下载plb文件; 2.登陆SQLPLUS,并执行3个plb文件即可... sqlplus / as sysdba 执行: @/oracle/data_backup/WMSYS/owmctab.plb @/oracle/data_backup/WMSYS/owmaggrs.plb @/oracle/data_backup/WMSYS/owmaggrb.plb
  • oracle 创建wm_concat函数

    2013-01-18 11:41:12
    wm_concat函数在oracle 10G以下版本是没有的,这个就需要我们自己来创建,有需要的就下载下来,直接运行就行了,如果在运行中出中,请分开运行,不要一次性运行哟
  • 是处理wm_concat中以varchar处理合并列字段过小。 clob 可以加大处理。 oracle 9I oracle 10G 必备
  • MySQL 的 GROUP_CONCAT见:...oracle中的wm_concat见:https://blog.csdn.net/njdxtj/article/details/78625571 MySQL 部分: 一、CONCAT()函数 CONCAT()函数用于将多个...

    MySQL 的 GROUP_CONCAT见:http://www.cnblogs.com/appleat/archive/2012/09/03/2669033.html

    oracle中的wm_concat 见:https://blog.csdn.net/njdxtj/article/details/78625571

    MySQL 部分:

    一、CONCAT()函数
    CONCAT()函数用于将多个字符串连接成一个字符串。
    使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为
    +----+--------+
    | id | name   |
    +----+--------+
    |  1 | BioCyc |
    +----+--------+
    1、语法及使用特点:
    CONCAT(str1,str2,…)                       
    返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。可以有一个或多个参数。

    2、使用示例:
    SELECT CONCAT(id, ‘,’, name) AS con FROM info LIMIT 1;返回结果为
    +----------+
    | con      |
    +----------+
    | 1,BioCyc |
    +----------+

    SELECT CONCAT(‘My’, NULL, ‘QL’);返回结果为
    +--------------------------+
    | CONCAT('My', NULL, 'QL') |
    +--------------------------+
    | NULL                     |
    +--------------------------+

    3、如何指定参数之间的分隔符
    使用函数CONCAT_WS()。使用语法为:CONCAT_WS(separator,str1,str2,…)
    CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。

    如SELECT CONCAT_WS('_',id,name) AS con_ws FROM info LIMIT 1;返回结果为
    +----------+
    | con_ws   |
    +----------+
    | 1_BioCyc |
    +----------+

    SELECT CONCAT_WS(',','First name',NULL,'Last Name');返回结果为
    +----------------------------------------------+
    | CONCAT_WS(',','First name',NULL,'Last Name') |
    +----------------------------------------------+
    | First name,Last Name                         |
    +----------------------------------------------+

    二、GROUP_CONCAT()函数
    GROUP_CONCAT函数返回一个字符串结果,该结果由分组中的值连接组合而成。
    使用表info作为示例,其中语句SELECT locus,id,journal FROM info WHERE locus IN('AB086827','AF040764');的返回结果为
    +----------+----+--------------------------+
    | locus    | id | journal                  |
    +----------+----+--------------------------+
    | AB086827 |  1 | Unpublished              |
    | AB086827 |  2 | Submitted (20-JUN-2002)  |
    | AF040764 | 23 | Unpublished              |
    | AF040764 | 24 | Submitted (31-DEC-1997)  |
    +----------+----+--------------------------+

    1、使用语法及特点:
    GROUP_CONCAT([DISTINCT] expr [,expr ...]
    [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col ...]]
    [SEPARATOR str_val])
    在 MySQL 中,你可以得到表达式结合体的连结值。通过使用 DISTINCT 可以排除重复值。如果希望对结果中的值进行排序,可以使用 ORDER BY 子句。
    SEPARATOR 是一个字符串值,它被用于插入到结果值中。缺省为一个逗号 (","),可以通过指定 SEPARATOR "" 完全地移除这个分隔符。
    可以通过变量 group_concat_max_len 设置一个最大的长度。在运行时执行的句法如下: SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer;
    如果最大长度被设置,结果值被剪切到这个最大长度。如果分组的字符过长,可以对系统参数进行设置:SET @@global.group_concat_max_len=40000;

    2、使用示例:
    语句 SELECT locus,GROUP_CONCAT(id) FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus; 的返回结果为
    +----------+------------------+
    | locus    | GROUP_CONCAT(id) |
    +----------+------------------+
    | AB086827 | 1,2              |
    | AF040764 | 23,24            |
    +----------+------------------+

    语句 SELECT locus,GROUP_CONCAT(distinct id ORDER BY id DESC SEPARATOR '_') FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus;的返回结果为
    +----------+----------------------------------------------------------+
    | locus    | GROUP_CONCAT(distinct id ORDER BY id DESC SEPARATOR '_') |
    +----------+----------------------------------------------------------+
    | AB086827 | 2_1                                                      |
    | AF040764 | 24_23                                                    |
    +----------+----------------------------------------------------------+

    语句SELECT locus,GROUP_CONCAT(concat_ws(', ',id,journal) ORDER BY id DESC SEPARATOR '. ') FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus;的返回结果为
    +----------+--------------------------------------------------------------------------+
    | locus    | GROUP_CONCAT(concat_ws(', ',id,journal) ORDER BY id DESC SEPARATOR '. ') |
    +----------+--------------------------------------------------------------------------+
    | AB086827 | 2, Submitted (20-JUN-2002). 1, Unpublished                               |
    | AF040764 | 24, Submitted (31-DEC-1997) . 23, Unpublished                            |
    +----------+--------------------------------------------------------------------------+

     

    oracle中的wm_concat:

     在日常的数据查询过程中,经常遇到一条信息分多条记录存储,并以同一个ID关联的情况,比如常见的房产证权利人信息,因为共有权人可能有很多,不可能把所有的权利人都放到权利人表的权利人字段,把所有权利人的证件号都放到权利人证件号字段,所以在数据库设计时候,会采用一个权利人一条记录,并以权利ID关联的方式存放。

    但是在数据查询时候,有时候又希望将所有权利人信息一起展示,这里可能就会用到Oracle的wm_concat函数

    1.示例数据

    2. 示例语句

    select qlrid,wm_concat(qlr) as qlr,wm_concat(qlrzjh) as qlrzjh from qlr t group by qlrid;

    运行后的返回结果根据oracle的版本不同而会字段类型不同,在oracle11g中返回clob型,在oracle10g中返回varchar型

    3. 通用版本语句

    select qlrid,to_char(wm_concat(qlr)) as qlr,to_char(wm_concat(qlrzjh)) as qlrzjh from qlr t group by qlrid;

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,184
精华内容 2,473
关键字:

wm_concat