사용법은
rowtocol('쿼리문', '구분자') 형태로 날려주면 됨.

예를 들어
--------------------------
catecode    |   catename
--------------------------
1                   미국
2                   일본
3                   영국
4                   한국
5                   러시아
---------------------------

select ...
    cate_id1 
    ,cate_id2
   ,rowtocol(' select catename from TB_CATEGORY where id in (''1'', ''2'')  ' , '>' ) as name;
from
   TB_BBS


위와 같은 느낌으로 하면... 1과 2번에 해당하는 "미국>일본" 형태로 묶어준다는 사실..
근데 인터넷에서 구한건데..맨앞에서도 >가 붙는거 보니 수정이 필요한듯 ㄱ-


펑션코드

create or replace
FUNCTION rowtocol(
    p_slct IN VARCHAR2,
    p_dlmtr IN VARCHAR2 DEFAULT ',' )
RETURN VARCHAR2
AUTHID CURRENT_USER AS
TYPE c_refcur IS REF CURSOR;
lc_str VARCHAR2(4000);
lc_colval VARCHAR2(4000);
c_dummy c_refcur;
l number;
BEGIN
    OPEN c_dummy FOR p_slct;
    LOOP
        FETCH c_dummy INTO lc_colval;
        EXIT WHEN c_dummy%NOTFOUND;
        lc_str := lc_str || p_dlmtr || lc_colval;
    END LOOP;
    CLOSE c_dummy;
    RETURN SUBSTR(lc_str,2);

EXCEPTION
    WHEN OTHERS THEN
    lc_str := SQLERRM;
    IF c_dummy%ISOPEN THEN
        CLOSE c_dummy;
    END IF;
    RETURN lc_str;
END;

+ Recent posts