Oracle Database TIP
SQL PLUS상에서 STORED PROCEDURE 소스 확인 방법 11 0 36,892

by 김정식 USER_SOURCE [2002.02.03]


  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;

    

- 강좌 URL : http://www.gurubee.net/lecture/1145

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

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