sql

10g 부터 지원하는 wm_concat함수 사용시 주의 사항

초이짬 2014. 9. 19. 11:12
728x90

wm_concat 함수는 row 데이터를 col 으로 자동 나열 해주는 정말 편리한 기능이다.

예전에는 connect by 쓰고 했는데 편하다

그런데 11g에서 그러는 것인지 모르겠지만 사무실 개발 환경에서 문제가 없던 것이 클라이언트에서는

clob 데이터로 넘어온다는 것이다. to_char 로 감싸던가 아니면 mybatis 상에서 resultmap 매핑설정을 통해

string 형태로 변경 해야 된다.

 

 

=====추가====

 

구글링 하다가 봤는데 10g에서 wm_concat

11g에서는 ListAgg

9i 에서는 XmlAgg 를 사용하면 된단다...


SELECT pid 
, SUBSTR(XMLAgg(XMLElement(x, '|', city)).Extract('//text()'), 2) v_9i 
, wm_concat(city) v_10g 
, ListAgg(city, '|') WITHIN GROUP(ORDER BY rownum) v_11g 
FROM t_table 
GROUP BY pid 
;

 

위에 예제 쿼리는 구루비의 마농님 쿼리를 가져왓다....

728x90