package constant record default 질문입니다.. 0 0 476

by kimmmmmmm [2020.04.02 11:55:25]


안녕하세요 ?

이번 프로젝트가 RESTFUL API 사용을 지양하고, DB 관련 업무가 많습니다.

RESPONSE_STATUS를 DB로 공통처리를 하려 합니다.

방법은 PACKAGE를 사용하여, Java의 Enum 처럼 사용을 하려 합니다.

아래는 제가 사용하려는 방식이나, PACKAGE 안에 RECORD타입을 CONSTATNT 및 DEFAULT초기화가 되지 않는것 같습니다.

  CF> https://docs.oracle.com/cd/E18283_01/appdev.112/e17126/record_definition.htm 여기서 봤을 땐 , RECORD타입은 CONSTANT가 안되는거 같아보엿요!

혹시 문법적으로 해결 할 수 있는 방법 또는 위와 같은 해결법(EX> collection 사용등)을 선후배님들은 어떻게 개발하시는지 궁금합니다.

 

 

 

/**************************************************
    HEADER
 **************************************************/
CREATE OR REPLACE PACKAGE PKG_RESPONSE_STATUS as

    TYPE REC_RESPONSE_STATUS IS RECORD(
        CODE VARCHAR2(4),
        MESG VARCHAR2(4000)
    );

    OK    REC_RESPONSE_STATUS;

    BAD_REQUEST    REC_RESPONSE_STATUS;

-- OK    REC_RESPONSE_STATUS := FNC_RESPONSE_STATUS('200', 'OK');  --제가 원하는 방법

-- BAD_REQUEST    REC_RESPONSE_STATUS := FNC_RESPONSE_STATUS('400', 'BAD_REQUEST[PARAMETER IVALID]');  --제가 원하는 방법

 

    FUNCTION FNC_RESPONSE_STATUS(

        IN_CODE VARCHAR2,

        IN_MESG VARCHAR2

    ) RETURN REC_RESPONSE_STATUS;
END PKG_RESPONSE_STATUS;
/


/**************************************************
    BODY
 **************************************************/
CREATE OR REPLACE PACKAGE BODY PKG_RESPONSE_STATUS AS

    FUNCTION FNC_RESPONSE_STATUS(

        IN_CODE VARCHAR2,

        IN_MESG VARCHAR2

    ) RETURN REC_RESPONSE_STATUS

    IS

        RESPONSE_STATUS REC_RESPONSE_STATUS;

    BEGIN

        RESPONSE_STATUS.CODE := IN_CODE;

        RESPONSE_STATUS.MESG := IN_MESG;

        RETURN RESPONSE_STATUS;

    END FNC_RESPONSE_STATUS;

 

END PKG_RESPONSE_STATUS;
/


/**************************************************
    USE
 **************************************************/
BEGIN
    DBMS_OUTPUT.PUT_LINE(PKG_RESPONSE_STATUS.OK.CODE);
    DBMS_OUTPUT.PUT_LINE(PKG_RESPONSE_STATUS.OK.MESG);
END;

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