사용자 도구

사이트 도구


oracle설명

문서의 이전 판입니다!


오라클은 패키지를 기분으로 구성한다 패키지 명은 화면id 또는 업무 기준으로 구성한다.

  오라클은 아래 3개의 필수구성 파라미터가 프로시져 끝에 본지해야 한다.
  N_RETURN         OUT  NUMBER,            /* RETURN VALUE */
  V_RETURN         OUT  VARCHAR2,          /* RETURN MESSAGE */
  C_RETURN1        OUT  SYS_REFCURSOR,      /* RETURN CURSOR */
  
  

패키지 선언 본체

  create or replace package PKG_MATRIL002 is
  
  PROCEDURE INT_LIST( A_PLANT          IN   EWIPMSTPLT.PLANT%TYPE,
                      A_LANG           IN   VARCHAR2,
                      // =============== 아래 필수구성 파라미터 ===========
                      N_RETURN         OUT  NUMBER,            /* RETURN VALUE */
                      V_RETURN         OUT  VARCHAR2,          /* RETURN MESSAGE */
                      C_RETURN1        OUT  SYS_REFCURSOR,      /* RETURN CURSOR */
                     );
  PROCEDURE PUT_LIST( A_PLANT          IN   EWIPMSTPLT.PLANT%TYPE,
                      A_XML            IN   CLOB,
                      A_REMARKS        IN   VARCHAR2,
                      A_TRAN_USER_ID   IN   VARCHAR2,
                      // =============== 아래 필수구성 파라미터 ===========
                      N_RETURN         OUT  NUMBER,            /* RETURN VALUE */
                      V_RETURN         OUT  VARCHAR2,          /* RETURN MESSAGE */
                      C_RETURN         OUT  SYS_REFCURSOR       /* RETURN CURSOR */
                     );
  end PKG_MATRIL002;
  
  create or replace package body PKG_MATRIL002 is
  
  ***********************   여기에 Procedure 본체를 코딩한다. **********************
  
  end PKG_MATRIL002;

1. SELECT Procedure

  PROCEDURE GET_LIST( A_PLANT          IN   EWIPMSTPLT.PLANT%TYPE,
                      A_LANG           IN   VARCHAR2,
                      A_FROM_DATE      IN   VARCHAR2,
                      A_TO_DATE        IN   VARCHAR2,
                      A_WH_CODE        IN   VARCHAR2,
                      A_INVOCE_NO      IN   VARCHAR2,
                      A_LOT_ID         IN   VARCHAR2,
                      N_RETURN         OUT  NUMBER,            /* RETURN VALUE */
                      V_RETURN         OUT  VARCHAR2,          /* RETURN MESSAGE */
                      C_RETURN         OUT  SYS_REFCURSOR      /* RETURN CURSOR */
                 )
  IS
  BEGIN
  
  OPEN C_RETURN FOR **************** 데이터 리턴을 위해 cursor를 선언한다.
      SELECT 'N' AS SEL,
             T1.LOT_ID AS LOT_ID,
             T1.QTY AS QTY,
             M.UNIT,
             CEIL(CASE WHEN M.MAT_TYPE IN ('FERT', 'HALB') THEN T1.QTY * M.SIZE_X * M.SIZE_Y ELSE 0 END / 1000000000) * 100 AS M2,
             T1.OUT_DOC_NO AS INVOICE_NO,
             T1.MAT_ID AS MAT_ID,
             T1.MAT_ID AS MAT_ID_DESC,
             T1.VENDOR_CODE AS VENDOR_CODE,
             T1.VENDOR_CODE AS VENDOR_CODE_DESC,
             T1.WH_CODE AS WH_CODE,
             T1.WH_CODE AS WH_CODE_DESC,
             CHAR_TO_DATE(T1.TRAN_TIME) AS TRAN_TIME,
             T2.LAST_HIST_SEQ AS HIST_SEQ
      FROM EWIPLOTPOI T1
           INNER JOIN EWIPLOTSTS T2 ON T2.PLANT = T1.PLANT
                  AND T2.LOT_ID = T1.LOT_ID
                  AND T2.LAST_ACTIVE_HIST_SEQ = T1.HIST_SEQ
       INNER JOIN EWIPMSTMAT M ON M.PLANT = T1.PLANT 
                               AND M.MAT_ID = T1.MAT_ID
      WHERE T1.PLANT = A_PLANT
          AND T1.TRAN_TIME >= A_FROM_DATE ||'000000'
          AND T1.TRAN_TIME <= A_TO_DATE ||'235959'
          AND T1.LOT_ID = NVL(A_LOT_ID, T1.LOT_ID)
          AND T1.OUT_DOC_NO = NVL(A_INVOCE_NO, T1.OUT_DOC_NO)
      ORDER BY T1.TRAN_TIME, T1.MAT_ID, T1.QTY;
  
      N_RETURN := 0;
      V_RETURN := 'MSG_COM_004'; --정상적으로 처리되었습니다.
  
      EXCEPTION
          WHEN OTHERS THEN
              N_RETURN := 1;
              V_RETURN := SQLERRM;
  END GET_LIST;
oracle설명.1751806063.txt.gz · 마지막으로 수정됨: (바깥 편집)