stored procedure(PL/SQL) 확인 sql
작성자 관리자 작성시간 2016-02-18 09:14:48
 

USER_SOURCE 데이터 사전에서 확인 가능하다.

-- USER_SOURCE의 구조를 살펴보면
SQL> DESC USER_SOURCE
 
        이름              유형
------------- ----------------
        NAME      VARCHAR2(30)
        TYPE      VARCHAR2(12)
        LINE            NUMBER
        TEXT    VARCHAR2(4000)


-- 어떤 프로시져들이 존재하는지 확인
SQL> SELECT DISTINCT(name)
    FROM USER_SOURCE
    WHERE TYPE = 'PROCEDURE';

NAME
------------------------------
FORCURSOR_TEST
IMPLICIT_CURSOR


-- 프로시져 소스의 확인
SQL> SELECT text
    FROM USER_SOURCE
    WHERE name='FORCURSOR_TEST';

-- 쿼리 결과
PROCEDURE ForCursor_Test
    IS

    CURSOR dept_sum IS
    SELECT b.dname, COUNT(a.empno) cnt, SUM(a.sal) salary
    FROM emp a, dept b
    WHERE a.deptno = b.deptno
    GROUP BY b.dname;
  BEGIN
    -- Cursor를 FOR문에서 실행시킨다
    FOR emp_list IN dept_sum LOOP
      DBMS_OUTPUT.PUT_LINE('부서명 : ' || emp_list.dname);
      DBMS_OUTPUT.PUT_LINE('사원수 : ' || emp_list.cnt);
      DBMS_OUTPUT.PUT_LINE('급여합계 : ' || emp_list.salary);
    END LOOP;
EXCEPTION
    WHEN OTHERS THEN
      DBMS_OUTPUT.PUT_LINE(SQLERRM||'에러 발생 ');
END;


목록 | 입력 | 수정 | 답변 | 삭제