행을열로 변환하여 조회하는 동적쿼리 가변열 커서 리턴 프로시져 예제 2 0 12,177

by 마농 [마농] 동적쿼리 행을열로 가변열 REFCURSOR [2021.02.24 14:41:15]


-- 행을열로 변환하여 조회하는 동적쿼리 가변열 커서 리턴 프로시져 예제 --
-- 사원 테이블에서 검색 부서 부서원들의 급여를 횡으로 출력 --

CREATE OR REPLACE PROCEDURE p_test1
( p_deptno IN emp.deptno%TYPE
, p_cursor OUT SYS_REFCURSOR
)
IS
    CURSOR c1 IS
    SELECT ename, sal
      FROM emp
     WHERE deptno = p_deptno
     ORDER BY ename
    ;
    v_sql VARCHAR(1000) := '';
    v_del VARCHAR(10) := 'SELECT ';
BEGIN
    FOR c2 IN c1 LOOP
        v_sql := v_sql || v_del || c2.sal || ' ' || c2.ename;
        v_del := ', ';
    END LOOP;
    v_sql := v_sql || ' FROM dual';
    OPEN p_cursor FOR v_sql;
END;
/

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입