'wm_concat'에 해당되는 글 1건

320x100

[Oracle 10 to 9] WM_CONCAT 함수 대체 XmlAgg

Posted on 2014. 7. 16. 09:25
Filed Under DB

WM_CONCAT은 여러 ','를 토큰으로해서 row값을 1줄로 합쳐준다.

DBMS가 Oracle 10g에서 9i로 대체되어서 WM_CONCAT 함수 미지원 상태가 되었을때 방법,

TO_CHAR(WM_CONCAT(C.OP_INFO)) --> 결과:'A,B,C,E' 를
SUBSTR(XMLAgg(XMLElement(X, ',')  --> 결과: 'A,B,C,,E'

-- 이 경우 값이 NULL인 경우 토큰(,)만 추가되므로 DECODE로 ',,'를 제거하자.

SUBSTR(XMLAgg(XMLElement(X, DECODE(C.OP_INFO, NULL, '', ',') 
-- 이렇게 수정하면 WM_CONCAT과 같은 결과 출력
(2017.02.15 추가) SUBSTR(를 빠뜨리면 한글이 깨져서 나오더라..

<참고>
http://www.gurubee.net/article/53637  ▶ XMLAgg 힌트
http://blog.naver.com/webdilh/30120533693 ▶ 상세설명

반응형

About

by 쑤기c

반응형