今天测试存储过程遇到一个错误:ora-22922:不存在的clob值。经排查后,得出是使用wm_concat行转列函数造成的。这个函数在之前的版本是返回varchar类型的,在10.2.0.5和11.2.0.3版本中返回成clob类型。使用to_char函数将clob类型转换成char类型,直接执行是可以的,但是在存储..
分类:
其他好文 时间:
2015-08-30 17:45:13
阅读次数:
652
1 SELECT SUBSTR(SYS_CONNECT_BY_PATH(tb.name,'->'),3) name2 FROM table tb3 START WITH nvl(tb.parentid,0)=04 CONNECT BY PRIOR I...
分类:
数据库 时间:
2015-07-24 18:04:57
阅读次数:
185
在Oracle中,SYS_CONNECT_BY_PATH函数主要作用是可以把一个父节点下的所有子节点通过某个字符进行区分,然后连接在一个列中显示。 AD: Oracle中SYS_CONNECT_BY_PATH函数是非常重要的函数,下面就为您介绍一个使用...
分类:
数据库 时间:
2015-07-02 21:14:48
阅读次数:
163
下面是3种方法方法1:SYS_CONNECT_BY_PATH , ROW_NUMBER() OVER(PARTITION BY .. ORDER BY ..) , START WITH , CONNECT BY PRIOR 组合使用方法2:wmsys.wm_concat方法3:listagg(ora...
分类:
数据库 时间:
2015-05-22 11:29:59
阅读次数:
343
SELECT substr(sys_connect_by_path(dutywork, ';'), 2)
FROM (select dutywork,rownum rn
from t_test)
WHERE connect_by_isleaf = 1
START WITH rn = 1
CONNECT BY prior rn = rn - 1;
查询表t_t...
分类:
数据库 时间:
2015-03-10 15:31:59
阅读次数:
192
oracle 多表查询 1对多 多个数据放到一个字段内
select id,zhzxm,fzhzxm,ltrim(max(sys_connect_by_path(xm, ',')), ',') xm
from (
select id,zhzxm,fzhzxm,xm,row_number() over(partition by id order by lrsj) rn --标记...
分类:
数据库 时间:
2015-01-29 17:41:56
阅读次数:
144
Oracle可以用SYS_CONNECT_BY_PATH字符串聚合函数:
SELECT LTRIM(MAX(SYS_CONNECT_BY_PATH(productname, ', ')), ', ') AS productname
FROM(
SELECT '1' as id, productname,
ROW_NUMBER() OVER (PARTITION BY '1'...
分类:
数据库 时间:
2014-11-07 14:54:39
阅读次数:
310
create table test ( NO NUMBER, VALUE VARCHAR2(100), NAME VARCHAR2(100) ); --------------------------------------insert into test ...
分类:
数据库 时间:
2014-11-04 18:55:34
阅读次数:
162
在许多场合,我们会需要用到oracle列合并,oracle提供了一些方法用于把某列的多行数据合并成一行。
一、10G以前使用WMSYS.WM_CONCAT
wmsys.wm_concat将字段的值用","来隔开。
select id,wm_concat(name) from tab_name group by id;
二、sys_connect_by_path
s...
分类:
数据库 时间:
2014-07-24 12:24:35
阅读次数:
263