안녕하세요 ?
이번 프로젝트가 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;