在网上查了一下,说是wm_concat最大长度为30K,有没有好的解决方案呢?
解决方案 »
- 大量并发 调用存储过程 同时执行 select update 要加锁吗 返回值会不会重复
- 15分求解一台电脑上三个库的数据同步更新问题
- 如何获取不连连续的数据。
- oracle sql loader 性能优化
- Oracle转义符号
- group by的以后如何连接其他字段
- oracle8.0.5的备份(EXP80方式),还原到oracle9i中(IMP80方式),会有什么问题么?
- 请问哪里有《oracle 9i数据库管理员实用技术指南》和《oracle 9i 数据库管理员高级技术指南》
- 怎么写这个存储过程?
- oracle 修改端口后em 端口无法监听
- oracle 中用一个表的字段update另一个表的字段值怎么做
- 求救,powerdesigner生成的sql怎么有错误啊,请大侠们来勘误啊
2、如果要拼接更长的,可以自定义一个聚合函数试试。
我也自定义了一个拼接函数,使用clob作为存储对象。可是后面又引发一系列的问题。因为我后面还要对个拼接后的字符串做一些操作。如max,substr等等。而clob根本不支持这些操作。也想到把clob转为varchar2类型,可是varchar2最大长度是4000。真是烦啊。
这个函数有的时候不能用
可以自定义
具体可以参照:http://blog.csdn.net/cnham/archive/2011/02/25/6206759.aspx
先估算wm_concat(item)中多少个item会超长,以100为例,套一层子查询,里边用分析函数row_number,在外边用
wm_concat(case when ro <= 100 then item end) item1,
wm_concat(case when ro > 100 and ro<200 then item end) item2,
应该可以满足一些需求了。