사용자 도구

사이트 도구


oracle설명

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
oracle설명 [2025/07/06 12:47] – 만듦 adminoracle설명 [2025/12/06 07:26] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
-오라클은 패키지를 기으로 구성한다+오라클은 패키지를 기으로 구성한다
 패키지 명은 화면id 또는 업무 기준으로 구성한다. 패키지 명은 화면id 또는 업무 기준으로 구성한다.
  
-    오라클은 아래 3개의 필수구성 파라미터가 프로시져 끝에 지해야 한다. +Oracle은 Package 기반이어서 클라이언트에서 호출시에 '패키지명.프로시져' 형식으로 호출한다.\\ 
-    N_RETURN         OUT  NUMBER,            /* RETURN VALUE */ +예) PKG_SYS.GET_CHILDS 
-    V_RETURN         OUT  VARCHAR2,          /* RETURN MESSAGE */ + 
-    C_RETURN1        OUT  SYS_REFCURSOR,      /* RETURN CURSOR */+    오라클은 아래 3개의 필수구성 파라미터를 프로시져 끝에 지해야 한다. 
 +    N_RETURN         OUT  NUMBER,            /* 프로시져 수행결과 오류여부 0:정상, 그외 에러발생 */ 
 +    V_RETURN         OUT  VARCHAR2,          /* 클라이언트에게 보내는 메세지 */ 
 +    C_RETURN1        OUT  SYS_REFCURSOR,      /* 클라이언트에 보내는 데이터 */
          
          
-패키지 선언 본체+패키지 PKG_MATRIL002
  
 +    
 +    ************** 패키지 헤더 시작 ************
     create or replace package PKG_MATRIL002 is     create or replace package PKG_MATRIL002 is
          
줄 29: 줄 34:
                        );                        );
     end PKG_MATRIL002;     end PKG_MATRIL002;
 +    ************** 패키지 헤더 끝 ************
 +    
          
     create or replace package body PKG_MATRIL002 is     create or replace package body PKG_MATRIL002 is
줄 90: 줄 97:
                 V_RETURN := SQLERRM;                 V_RETURN := SQLERRM;
     END GET_LIST;     END GET_LIST;
 +
 +==== 2, 3, 4. Insert, Udate, Delete Procedure ====
 +
 +    
 +    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 */
 +                       )
 +    IS
 +    
 +    V_FORM_CODE         EWIPLOTHIS.TRAN_FORM%TYPE := 'MATRIL002';
 +    V_TRAN_TIME         EWIPLOTHIS.TRAN_TIME%TYPE := FUN_CURR_TIME();
 +    V_GROUP_TR_KEY_C    EWIPLOTHIS.GROUP_TR_KEY_C%TYPE;
 +    
 +    BEGIN
 +    
 +        FOR R_REC IN (SELECT S1.COLUMN_VALUE.EXTRACT('//LOT_ID/text()' ).GETSTRINGVAL()          AS LOT_ID,
 +                             S1.COLUMN_VALUE.EXTRACT('//HIST_SEQ/text()' ).GETSTRINGVAL()        AS HIST_SEQ
 +                        FROM TABLE( XMLSEQUENCE(XMLTYPE(A_XML).EXTRACT('//Table'))) S1
 +                     )
 +        LOOP
 +            ***************** 일료시 다른프로시져 호출
 +            PRC_COMM_LOT_CHECK(
 +                A_PLANT => A_PLANT,
 +                A_LOT_ID => R_REC.LOT_ID,
 +                A_TRAN_FORM => V_FORM_CODE,
 +                A_WH_CODE => NULL,
 +                A_LAST_ACTIVE_HIST_SEQ => R_REC.HIST_SEQ,
 +                N_RETURN => N_RETURN,
 +                V_RETURN => V_RETURN
 +                );
 +    
 +            IF N_RETURN != 0 THEN
 +                RETURN;
 +            END IF;
 +    
 +            SELECT T1.GROUP_TR_KEY_C
 +               INTO V_GROUP_TR_KEY_C
 +            FROM EWIPLOTHIS T1
 +            WHERE T1.PLANT = A_PLANT
 +               AND T1.LOT_ID = R_REC.LOT_ID
 +               AND T1.HIST_SEQ = R_REC.HIST_SEQ;
 +    
 +            *********************** 삭제 프로시져 호출 *******************
 +            PRC_LOT_HIST_DEL(
 +                A_PLANT => A_PLANT,
 +                A_TRAN_TIME => V_TRAN_TIME,
 +                A_TRAN_USER_ID => A_TRAN_USER_ID,
 +                A_TRAN_FORM => V_FORM_CODE,
 +                A_REMARKS => A_REMARKS,
 +                A_GROUP_TR_KEY => V_GROUP_TR_KEY_C,
 +                A_GROUP_TYPE => 'C',
 +                N_RETURN => N_RETURN,
 +                V_RETURN => V_RETURN
 +                );
 +            IF N_RETURN != 0 THEN
 +                RETURN;
 +            END IF;
 +    
 +        END LOOP;
 +    
 +        N_RETURN := 0;
 +        V_RETURN := 'MSG_COM_001'; --정상적으로 처리되었습니다.
 +    
 +    EXCEPTION
 +        WHEN OTHERS THEN
 +        N_RETURN := 1;
 +        V_RETURN := SQLERRM;
 +    
 +    END PUT_LIST;
 +    
 +[[database_crud|↑ 상위로 가기]]
oracle설명.1751806063.txt.gz · 마지막으로 수정됨: (바깥 편집)