1. SQLPLUS에서 호출

SQL> VARIABLE RTN VARCHAR2(1000);
SQL> EXECUTE :RTN := TEST.MAIN('TEST');

PL/SQL procedure successfully completed.

SQL> PRINT RTN;

RTN
--------------------
20120307102713  TEST




SQL> VARIABLE RTN_CURSOR REFCURSOR;
SQL> EXECUTE PK_CODE.SEL_CODE('P013', 'AUTH', :RTN_CURSOR);

PL/SQL procedure successfully completed.

SQL> PRINT RTN_CURSOR;

RTN_CURSOR
-------------------------------------------------------------------------------------------
CODE                                     NAME                                               
---------------------------------------- -------------------------------------------------- 
ADMIN_Level2                             MES Semi 관리자                                    
ADMIN_Level1                             MES 관리자                                         
BST                                      경영시스팀 사용자                                    
NORMAL                                   일반사용자 

 

2. SQL DEVELOPER에서 호출 (블록지정후 F5)

VARIABLE RTN VARCHAR2(1000);
EXECUTE :RTN := TEST.MAIN('TEST');
PRINT RTN;


VARIABLE RTN_CURSOR REFCURSOR;
EXECUTE PK_CODE.SEL_CODE('P013', 'AUTH', :RTN_CURSOR);
PRINT RTN_CURSOR;

 

3. 프로시저 호출(예외발생 처리)

CREATE OR REPLACE
PROCEDURE     SP_TEST ( P_A     IN  NUMBER
                      , P_B     IN  NUMBER
                      , P_RTN   OUT NUMBER) 
AS 
    V_RESULT  NUMBER;
BEGIN

    V_RESULT := P_A / P_B;
    
    P_RTN := V_RESULT;
    
    EXCEPTION
          WHEN OTHERS THEN
            DBMS_OUTPUT.PUT_LINE('예외발생 : ' || SQLERRM);
            RAISE_APPLICATION_ERROR (-20100,'예외발생 : ' || SQLERRM);
END;


VARIABLE RTN NUMBER;
EXECUTE SP_TEST(2, 0, :RTN);
PRINT RTN;



명령의 21 행에서 시작하는 중 오류 발생:
EXECUTE sp_test(2, 0, :RTN)
오류 보고:
ORA-20100: 예외발생 : ORA-01476: 제수가 0 입니다
ORA-06512: "ESS.SP_TEST", 줄 15에서
ORA-06512: 줄 1에서

RTN
------

 

4. SQL DEVELOPER에서 익명 블록 실행하기 (블록지정후 F5)

DECLARE
  C VARCHAR2(3 CHAR);
BEGIN
  C := 'ABC';
  
  SYS.DBMS_OUTPUT.PUT_LINE(C);
END;


------------------------------
ABC