2013-10-18 2 views

답변

2

는 오라클 9i의 작동합니다.

CREATE OR REPLACE FUNCTION get_employees (p_deptno in emp.deptno%TYPE) 
    RETURN VARCHAR2 
IS 
    l_text VARCHAR2(32767) := NULL; 
BEGIN 
    FOR cur_rec IN (SELECT ename FROM emp WHERE deptno = p_deptno) LOOP 
    l_text := l_text || ',' || cur_rec.ename; 
    END LOOP; 
    RETURN LTRIM(l_text, ','); 
END; 
/
SHOW ERRORS 

이 함수는 다음과 같이 쿼리에 통합 될 수 있습니다.

COLUMN employees FORMAT A50 

SELECT e.deptno, 
     get_employees(e.deptno) AS employees 
FROM (SELECT DISTINCT deptno 
     FROM emp) e; 

    DEPTNO EMPLOYEES 
---------- -------------------------------------------------- 
     10 CLARK,KING,MILLER 
     20 SMITH,JONES,SCOTT,ADAMS,FORD 
     30 ALLEN,WARD,MARTIN,BLAKE,TURNER,JAMES 
관련 문제