关闭

wmsys.wm_concat 长度限制的问题

2634人阅读 评论(0) 收藏 举报
分类:

wmsys.wm_concat 和listagg 在函数实现字段合并的时候会有长度限制的问题,

如:ORA-22813: 操作数值超出系统的限制或者ORA-06512: at "WMSYS.WM_CONCAT_IMPL", line 30

网上查了一下方案,用sys_connect_by_path也没有解决

后来国外有个文档说,可以用XML函数解决


select XMLAGG(XMLELEMENT(E, pid || ',')).EXTRACT('//text()').getclobval()  as pids from T05_LOCKS where sid<3000







得到xmltype不好解析,可以先转成clob类型的,再用程序解析


select XMLAGG(XMLELEMENT(E, pid || ',')).EXTRACT('//text()').getclobval()  as pids from T05_LOCKS where sid<3000

有个问题,最后会多一个逗号,要自己处理一下。



这样就的得到了没有字符大小限制的,可以直接拿来用的,用逗号拼接的字符串


1
0
查看评论

Oracle内部函数 wmsys.wm_concat 替换办法及思考

如果你不知道这个函数没有关系,因为您可以有其他的办法来实现。如果你已经在使用这个函数,一定要注意。 wmsys.wm_concat 是ORACLE内部函数,没有对外公布,也就是说,你可以使用,但是如果发生什么问题ORACLE概不负责。最显然的是ORACLE版本从10.2.0.4 =》10....
  • eric_za
  • eric_za
  • 2014-09-20 17:54
  • 3722

Oracle字符串长度的问题

    今天碰到一个问题,通过一个SQL语句查询时,出如下问题:       ORA-06502: PL/SQL: numeric or value error: character string buffer...
  • sniperwang
  • sniperwang
  • 2010-05-26 11:50
  • 26880

ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小

ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小 ORA-06512:在"WMSYS.WM_CONCAT_IMPL",line 30    记录一下,今天在合并订单号的时候出现了这个错误,想了很久没搞定,在网上搜了多种方法都没有解决(包...
  • yanguan55
  • yanguan55
  • 2012-12-05 17:17
  • 17222

字符串连接超长的解决wmsys.wm_concat()

在我的BLOG中第一篇文章写的就是字符串聚合连接的例子:http://yangtingkun.itpub.net/post/468/3380。 后来还写过一篇用SQL实现相同功能的文章:http://yangtingkun.itpub.net/post/468/388003。 不过上面两种方法都...
  • u010736419
  • u010736419
  • 2013-09-06 17:08
  • 4197

WM_CONCAT字符超过4000的处理办法

参考网址: http://stackoverflow.com/questions/11541383/ordering-by-list-of-strings-in-oracle-sql-without-listagg 字符串拼接技巧和方式:http://www.oracle-base.co...
  • l2tp1012
  • l2tp1012
  • 2014-06-14 14:59
  • 9043

在Oracle 上补充创建wm_concat函数

Oracle 11gR2和12C上已经摒弃了wm_concat函数,当时我们很多程序员在程序中确使用了该函数,导致程序出现错误,为了减轻程序员修改程序的工作量,只有通过手工创建个wm_concat函数,来临时解决该问题,但是注意,及时创建了该函数,在使用的过程中,也需要用to_char(w...
  • dantegarden
  • dantegarden
  • 2017-02-23 08:55
  • 1618

"SYS"."WM_CONCAT": 标识符无效

运行project后后台报错: org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [select wmsys.wm_concat(RoleID) from dlsys.tcrole...
  • sweetgirl520
  • sweetgirl520
  • 2016-04-29 15:44
  • 4936

wmsys.wm_concat结果长度限制的问题

 使用wmsys.wm_concat多列合成一列遇到问题 ORA-22813: 操作数值超出系统的限制 官方文档解释是总长度超过30k 有办法修改这个长度限制么? 已经写了存储过程作为替代方案了 CREATE OR REPLACE TYPE zh_concat_im...
  • XMM_1030
  • XMM_1030
  • 2015-07-02 11:18
  • 3473

oracle wmsys.wm_concat ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB

oracle 函数 wmsys.wm_concat 在 10.2.0.4版本以前是 varchar2 类型,但是 从 10.2.0.5 开始,是 CLOB 类型,是一个坑!! 改成 to_char(wm_concat( ...... )) 解决
  • YangYudong2014
  • YangYudong2014
  • 2017-03-13 11:13
  • 2712

oracle 函数 WMSYS.WM_CONCAT 的用法 与 mysql 函数GROUP_CONCAT的用法

1、oracle函数 WMSYS.WM_CONCAT的使用 如图,将图1的结果变成图2的结果,使用函数 WMSYS.WM_CONCAT 即可。 查询语句需要配合使用group by select aa,wmsys.wm_concat(t1.name) from ( selec...
  • huaishuming
  • huaishuming
  • 2015-09-01 18:24
  • 2755
    个人资料
    • 访问:12628次
    • 积分:271
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:7篇
    • 译文:0篇
    • 评论:0条
    文章分类