oracle中wm_concat 字符串缓冲区太小解决方案

转载 2018年04月16日 18:52:11

转载自:https://blog.csdn.net/zym1550974736/article/details/69400400    感谢,特此记录


今天在项目中执行sql时遇到一个问题,执行

select wmsys.wm_concat(p_codes) codes from t_rel where id='123'
  • 1

这样一个语句时报这样的错误:

numeric or value error: character string buffer too small(数字或值错误:字符缓冲区太小)

经查明,wm_concat函数拼接的字符串不能超过4000字节,否则会报错。


  • 解决方案:

    更改sql如下:

select XMLAGG(XMLELEMENT(E, p_codes || ',')).EXTRACT('//text()').getclobval() codes from t_rel where vote_id='123'
  • 1

注意,该sql拼接字符串末尾会多一个,符号,可用substr函数或在后台截掉。


WM_CONCAT字符超过4000的处理办法

参考网址: http://stackoverflow.com/questions/11541383/ordering-by-list-of-strings-in-oracle-sql-witho...
  • l2tp1012
  • l2tp1012
  • 2014-06-14 14:59:38
  • 9946

oracle wm_concat 字符串缓冲区太小

数据少的时候wm_concat(字段名)可以正常拼接出字符串,数据多的时候就会报错(如图片所示) 原sql语句是: select t2.districtname, t.diagnosis_name...
  • u012773454
  • u012773454
  • 2017-03-06 14:44:23
  • 1863

SQL函数:WMSYS.WM_CONCAT行转列

wm_concat(column):此函数实现字段合并,可以把列值以","号分隔起来并显示成一行,实现行转列的效果。...
  • jlb882800
  • jlb882800
  • 2014-12-10 14:50:56
  • 746

oracle中wm_concat 字符串缓冲区太小解决方案

转载自:https://blog.csdn.net/zym1550974736/article/details/69400400    感谢,特此记录今天在项目中执行sql时遇到一个问题,执行sele...
  • yh910420
  • yh910420
  • 2018-04-16 18:52:11
  • 14

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

-- 场景: --在Oracle 11g 环境 select WM_SYS.WM_CONCAT(id) from table_name -- 报错如下: ORA-06502: PL/SQ...
  • xyj0808xyj
  • xyj0808xyj
  • 2015-11-20 21:43:15
  • 5334

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

ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小 ORA-06512:在"WMSYS.WM_CONCAT_IMPL",line 30    记录一下,今天在合并订单号的时候出现...
  • yanguan55
  • yanguan55
  • 2012-12-05 17:17:58
  • 17864

IMP导入数据库时报缓冲区长度不够的解决方案

在使用imp导入数据库时,报IMP-00032: SQL 语句超过缓冲区长度 IMP-00008: 导出文件中出现无法识别的语句: 这样的错误。 解决办法:再导入数据库时,在导入语句的最后加上 ...
  • weixian52034
  • weixian52034
  • 2017-08-04 17:50:08
  • 643

使用WMSYS.WM_CONCAT实现行转列!

在BBS上面看到一个比较不错的行转列的问题,大致SQL如下: CREATE TABLE foo( fooid NUMBER(20), fooname VARCHAR2(20), fooba...
  • ziwen00
  • ziwen00
  • 2012-08-15 17:19:58
  • 1559

解决oracle数据库wm_concat()字符串拼接过长问题

解决oracle数据库wm_concat()字符串拼接过长问题
  • darron_r
  • darron_r
  • 2016-10-01 22:11:54
  • 3651

字符串缓冲区太小?--Oracle也谎报军情

为了几天后的系统测试,需要在虚拟机安装整个系统,数据库使用了Oracle 10.2.0版本,但由于Oracle的军情谎报,害我重装了N回。目前正在运行的数据库服务器是10.2.0.3.0版本的Orac...
  • zhmnsw
  • zhmnsw
  • 2007-05-21 21:11:00
  • 7141
收藏助手
不良信息举报
您举报文章:oracle中wm_concat 字符串缓冲区太小解决方案
举报原因:
原因补充:

(最多只允许输入30个字)