데이터를 후가공하여 컬럼내용을 나열할때 사용하는 함수입니다. 만약 아이템코드에 대한 여러가지 아이템부품이 있고, 한줄로 나열해서 쓸일이 있으면 아래 함수를 사용하시면 됩니다.
예제 테이블)
아이템코드 아이템부품
0001 부품1
0001 부품2
0001 부품3
0002 공구1
0002 공구2
0001 부품1
0001 부품2
0001 부품3
0002 공구1
0002 공구2
아이템코드에 대한 여러개의 부품들이 있습니다. 지금 저희가 만들 함수는 아이템코드로 호출을하면 이러한 부품들을 한줄로 만들어서 한줄로 나열하게 만드는 겁니다.
CREATE OR REPLACE FUNCTION 펑션이름(아이템코드 IN CHAR)
RETURN VARCHAR2
IS
TEMPSTR VARCHAR2(4000);
CURSOR ITEM_CUR IS
SELECT 아이템부품 FROM 아이템테이블
WHERE 아이템코드 = 아이템코드;
ITEM_REC ITEM_CUR%ROWTYPE;
BEGIN
TEMPSTR := '';
FOR ITEM_REC IN ITEM_CUR LOOP
TEMPSTR := TEMPSTR || ITEM_REC.아이템부품 || ', ';
END LOOP;
TEMPSTR := RTRIM(TEMPSTR, ', ');
RETURN TEMPSTR;
END 펑션이름;
간력하게 설명을 드리면 TEMPSTR이라는 변수는 아이템리스트가 들어갈 변수이며, 아이템코드부품의 개수에 따라 FOR으로 반복을 하여 ROW에 해당되는 아이템부품을 한줄로 계속 나열해서 리턴하게 만들었습니다.
함수생성후 SELECT 함수이름(아이템코드) FROM DUAL 로 테스트해보세요.
'IT정보센터 > ORACLE' 카테고리의 다른 글
오라클 LEVEL을 이용한 계층형쿼리 쉽게 만들기 (0) | 2015.07.31 |
---|---|
오라클 달력 콩 볶아 먹듯이 쉽게만들기 (0) | 2015.07.28 |
오라클 LEVEL 잘 사용하기(가로컬럼을 세로로 변환) (0) | 2015.07.26 |
오라클 SqlPlus 원격으로 접속하는 방법 (0) | 2015.07.16 |
오라클버전을 확인하는 방법(로컬,원격,디비툴) (0) | 2015.07.15 |
오라클 참조테이블(다른테이블) 값으로 업데이트 처리하기 (0) | 2015.07.13 |
오라클을 설치안하고 사용하기 (무설치) (0) | 2015.07.12 |
[오라클팁] 그룹함수로 중복된 컬럼 제거하기 (0) | 2015.07.04 |
[오라클팁] 특수문자['] 검색 및 삽입 방법 (1) | 2015.07.02 |
오라클 순차적으로 넘버링하기 (0) | 2015.06.23 |