PL SQL

PL/SQL 프로시저(Procedure) - 3 ( 프로시저 호출 방법 (EXECUTE, ), user_objects와 user_source )

n.han 2016. 7. 6. 16:53

4) EXECUTE, SQL 내부에서 프로시저 호출

  일반적으로 프로시저를 호출하기 위해서는 EXECUTE를 사용한다. 다만 SQL 내부에서 프로시저를 호출하기 위해서는 단순하게 프로시저를 호출하면 된다. 다음은 EXECUTE를 활용하여 생성된 프로시저를 호출하는 내용이다.

 

  SET SERVEROUTPUT ON

  EXECUTE delete_emp (7788)

  PL/SQL procedure successfully completed. 

 

5) user_objects, user_source

  user_objects 테이블에는 사용자 객체에 대한 정보가 저장되어 있다. 다음은 프로시저 객체만을 필터링하여 사용자가 만든 프로시저 객체를 출력하는 예제이다.

 

SELECT object_name, status FROM user_objects WHERE object_type = 'PROCEDURE' ;
OBJECT_NAME STATUS
--------------- -------
DELETE_EMP VALID

 

    user_source는 사용자가 만든 객체에 대한 내부적인 코드를 볼 수 있는 테이블이다. 다음은 사용자가 만든 DELETE_EMP라는 프로시저의 코드를   출력하는 예제이다.

 

SELECT line, text FROM user_source WHERE name = 'DELETE_EMP' AND type = 'PROCEDURE' ORDER BY line ;
LINE TEXT
---------- ----------------------------------------
1 PROCEDURE delete_emp
2 ( p_empno NUMBER)
3 IS
4 BEGIN
5
6 DELETE emp
7 WHERE empno = p_empno ;
8
9 EXCEPTION
10 WHEN OTHERS THEN
11 DBMS_OUTPUT.PUT_LINE (SQLERRM) ;
12 END delete_emp ;