반응형
Oracle 오라클 행의 값을 한 컬럼으로 합치는 함수
* 한 쿼리의 값을 한 컬럼으로 합치기
CREATE OR REPLACE FUNCTION KURS.NF_QRY_ROW_CONCAT
(
I_QRY VARCHAR2 -- 쿼리명령문
, I_MAX NUMBER -- 최대길이. 이 길이가 넘어간 후 처리 종료됨.
, I_DIV VARCHAR2 -- 중간 구분자
) RETURN VARCHAR2
IS
RSLT VARCHAR2(8000);
STR1 VARCHAR2(1000);
CURS SYS_REFCURSOR;
BEGIN
OPEN CURS FOR I_QRY;
LOOP
FETCH CURS INTO STR1;
EXIT WHEN CURS%NOTFOUND;
IF (RSLT IS NULL) THEN
RSLT := STR1;
ELSE
IF (LENGTHB(RSLT) > I_MAX) THEN
EXIT;
ELSE
RSLT := RSLT || I_DIV || STR1;
END IF;
END IF;
END LOOP;
CLOSE CURS;
RSLT := TRIM(RSLT);
RETURN RSLT;
END;
* 응용 & 사용법*
SELECT NF_QRY_ROW_CONCAT('SELECT EMP_ID || EMP_NM FROM EMPLOYEES
WHERE SALARY > ''30000000''
ORDER BY EMP_ID',1000,',')
FROM DUAL;
결과
1111홍길동, 2222이순신, 3333장보고....
반응형
'Database > 유용한함수' 카테고리의 다른 글
Oracle 오라클 주민번호 유효성 체크 함수 (1) | 2013.05.21 |
---|
댓글