查询CLOB字段

有时工作中会用到wm_concat列转行的函数,但是从10205之后,其返回结果为CLOB类型,在PL/SQL developer中显示为这样:
这里写图片描述
但是在sqlplus中显示正常:

SQL> SELECT wm_concat(column_name) FROM t1 GROUP BY table_name;

WM_CONCAT(COLUMN_NAME)
--------------------------------------------------------------------------------
ENAME,COMM,SAL,JOB
DEPTNO,LOC,DNAME
EMPNO,DEPTNO,COMM,SAL,HIREDATE,MGR,JOB,ENAME
GRADE,HISAL,LOSAL

此时可以使用dbms_lob函数:
这里写图片描述

另:
在11GR2中,使用listagg()函数代替wm_concat(),可以提高效率;而且listagg()还可以作为分析函数使用,添加over子句。

SELECT deptno,dbms_lob.substr(wm_concat(ename))
FROM scott.emp a
GROUP BY deptno;

SELECT deptno,listagg(ename,',') WITHIN GROUP (ORDER BY ename)
FROM scott.emp a
GROUP BY deptno;

SELECT DISTINCT deptno,listagg(ename,',') WITHIN GROUP (ORDER BY ename) OVER (PARTITION BY deptno)
FROM scott.emp a;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值