oracle的函数wm_concat字符超过4000的处理办法
2017-12-04 15:49
881 查看
当执行sql:
select wm_concat(colA) as colA from tableA
提示:
java.sql.SQLException: ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 ORA-06512: 在 "WMSYS.WM_CONCAT_IMPL", line 30 )
wm_concat的最大长度只有4000,超过就会报错,
两种方法:
(1)转clob类型
select --wm_concat(colA) as colA
rtrim(xmlagg(xmlparse(content colA || ',' wellformed) ORDER BY colA).getclobval(),',') as colA from tableA;
(2)先转clob,再转varchar2,但是长度还是只能4000
select --wm_concat(colA) as colA
dbms_lob.substr(rtrim(xmlagg(xmlparse(content colA || ',' wellformed) ORDER BY colA).getclobval(),','),4000) as colA from tableA;
这是别人的方法:http://blog.csdn.net/l2tp1012/article/details/30744371
select wm_concat(colA) as colA from tableA
提示:
java.sql.SQLException: ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 ORA-06512: 在 "WMSYS.WM_CONCAT_IMPL", line 30 )
wm_concat的最大长度只有4000,超过就会报错,
两种方法:
(1)转clob类型
select --wm_concat(colA) as colA
rtrim(xmlagg(xmlparse(content colA || ',' wellformed) ORDER BY colA).getclobval(),',') as colA from tableA;
(2)先转clob,再转varchar2,但是长度还是只能4000
select --wm_concat(colA) as colA
dbms_lob.substr(rtrim(xmlagg(xmlparse(content colA || ',' wellformed) ORDER BY colA).getclobval(),','),4000) as colA from tableA;
这是别人的方法:http://blog.csdn.net/l2tp1012/article/details/30744371
相关文章推荐
- WM_CONCAT字符超过4000的处理办法
- WM_CONCAT字符超过4000的处理办法
- WM_CONCAT字符超过4000的处理办法
- WM_CONCAT字符超过4000的处理办法
- WM_CONCAT字符超过4000的处理办法
- oracle 列转行函数 WMSYS.WM_CONCAT 排序不规则处理
- oracle 列转行函数 WMSYS.WM_CONCAT 排序不规则处理
- 自定义聚集函数,仿wm_concat,使用CLOB,可处理超过4000长度字符串
- Oracle内部函数 wmsys.wm_concat 替换办法及思考
- MySQL中函数CONCAT及GROUP_CONCAT 对应oracle中的wm_concat
- oracle 函数 WMSYS.WM_CONCAT 的用法 与 mysql 函数GROUP_CONCAT的用法
- oracle中的wmsys.wm_concat()函数
- Oracle: wmsys.wm_concat、sys_connect_by_path、自定义函数实现行列转换
- oracle函数介绍(1)――WMSYS.WM_CONCAT行转列
- oracle函数学习整理--字符处理
- oracle wm_concat(column)函数的使用(转)
- oracle中的wmsys.wm_concat()函数
- Oracle List 功能 《=》 Oracle: wmsys.wm_concat、sys_connect_by_path、自定义函数实现行列转换
- oracle 函数WMSYS.WM_CONCAT()的用法(行转列)
- oracle合并列的函数wm_concat的使用详解