首页 > 其他 > 详细

ORA-06502:at "WMSYS.WM_CONCAT_IMPL",line 30 解决方法整理

时间:2019-07-09 12:31:40      阅读:97      评论:0      收藏:0      [点我收藏+]

  之前数据量少的时候,用:select wm_concat(字段) from 表 拼接数据量小的话,没有问题,数据量超出4000个就会爆以下错误信息:

技术分享图片

解决方法(Oracle 函数xmlagg拼接):

1 语法格式:SELECT xmlagg(xmlparse(content 合并字段||’,’ wellformed) order by 排序字段).getclobval() FROM 表名

 效果图:

技术分享图片
1  select xmlagg(xmlparse(content SECTION_NO||, wellformed) order by SPS_ID).getclobval() SECTION_NO from REAL_PROJ_SECTION
SQL语句

 技术分享图片

拼接出来的语句,最后会多一个“,”,可以使用substr截取字符串和length计算字符长度配合使用

 1 格式1: substr(string string, int a, int b);
 2 
 3   格式2:substr(string string, int a) ;
 4 
 5 解释:
 6 
 7     格式1:
 8         1、string 需要截取的字符串 
 9         2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
10         3、b 要截取的字符串的长度
11 
12     格式2:
13         1、string 需要截取的字符串
14         2、a 可以理解为从第a个字符开始截取后面所有的字符串。

最终sql语句:

1 select substr(xmlagg(xmlparse(content SECTION_NO || , wellformed) order by SPS_ID)
2               .getclobval(),
3               0,
4               length(xmlagg(xmlparse(content SECTION_NO || , wellformed) order by SPS_ID)
5                      .getclobval()) - 1) SECTION_NO
6   from REAL_PROJ_SECTION

问题解决!~~~

 

ORA-06502:at "WMSYS.WM_CONCAT_IMPL",line 30 解决方法整理

原文:https://www.cnblogs.com/chenyanbin/p/11156228.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!