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
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.