[ORACLE] 오라클 프로시저 작성 (매개변수 OUT 이 존재하는 프로시저 SELECT 방법)

[ORACLE] 오라클 프로시저 작성 (매개변수 OUT 이 존재하는 프로시저 SELECT 방법)

매개변수 OUT 이 존재하는 프로시저를 작성하고, 호출하는 방법에 대해 정리한다.

1. 프로시저 작성 (매개변수 OUT 이 존재하는 프로시저 CREATE 방법)

CREATE OR REPLACE PROCEDURE SP_ORG_TEST (OUT_CODE OUT VARCHAR2)

IS

BEGIN

    OUT_CODE := ‘-1’;

   

    — 내용 기입. INSERT TABLE 어쩌구 저쩌구.

   

    COMMIT;

   

    OUT_CODE := ‘1’;

EXCEPTION

    WHEN OTHERS

    THEN

        — OUT_CODE := ‘0’;

        DBMS_OUTPUT.PUT_LINE (‘SP_ORG_TEST EXCEPTION’);

END SP_ORG_TEST;



2. 프로시저 호출 (매개변수 OUT 이 존재하는 프로시저 SELECT 방법)

* 원래 프로시저는 SELECT 하는 개념이 아니지만, 프로시저 SELECT 로 검색하는 분들을 위해 이렇게 적었다.

 

SET SERVEROUTPUT ON;

DECLARE

    V_RESULT VARCHAR2(200);

BEGIN

    SP_ORG_TEST(V_RESULT);

    DBMS_OUTPUT.PUT_LINE(‘V_RESULT : ‘ || V_RESULT);

END;

위 코드를 실행했을 때, 콘솔에 <PL/SQL 프로시저가 성공적으로 완료되었습니다.> 라고 출력되면 성공이다.

3. 자바에서 프로시저 실행 (매개변수 OUT 이 존재하는 프로시저 SELECT 방법)

public static void main(String[] args) {

    Connection conn = null;
    CallableStatement statement = null;
    String result = “”;
 
    try {
        conn = getConnection();

        statement = conn.prepareCall(“{call SP_ORG_TEST(?)}”);
        statement.registerOutParameter(1, java.sql.Types.VARCHAR);
        statement.executeUpdate();

        result = statement.getString(1);

        System.out.print(“result : ” + result);

    } catch (SQLException e) {
        e.printStackTrace();

    } catch (Exception e) {
        e.printStackTrace();

    } finally {
        try {
            if (statement != null) {
                statement.close();
            }
        } catch (Exception e) {
            statement = null;
        }

        try {
            if (conn != null) {
                conn.close();
            }
        } catch (Exception e) {
            conn = null;
        }
    }

}

위 코드를 실행했을 때, 콘솔에 <result : 1> 이라고 출력되면 성공이다.