pl/sql example

CREATE OR REPLACE PACKAGE ZCPPCB1100_PKG IS
  /*=====================================================================+
  |    Copyright (c) 2012 SUMITOMO WIRING COMPUTER SYSTEMS CO.,LTD.,     |
  |                         All rights reserved.                         |
  +=====================================================================*/
  /***********************************************************************
  * Package       : ZCPPCB1100_PKG
  * Description   : 巇擖愭惗嶻幚愌楢実(SDEL-抂巕)
  * Date          : 2012/04/10 SIS-C柎      怴婯嶌惉
  ***********************************************************************/

    --
    /***********************************************************************
    * Procedure     :main
    * Argument      :OVN_RETURN (0:惉岟 1:幐攕)
    * Return        :None
    * Description   :儊僀儞張棟
    * Date          :2012/04/10 SIS-C柎      怴婯嶌惉
             
    ***********************************************************************/
    PROCEDURE main(IVC_YYYYMMDD IN  VARCHAR2,
                   OVN_RETURN   OUT NUMBER);

END ZCPPCB1100_PKG;
/
CREATE OR REPLACE PACKAGE BODY ZCPPCB1100_PKG is
    /*=====================================================================+
    |    Copyright (c) 2012 SUMITOMO WIRING COMPUTER SYSTEMS CO.,LTD.,     |
    |                         All rights reserved.                         |
    +=====================================================================*/

    /***********************************************************************
    * Package       : ZCPPCB1100
    * Description   : 巇擖愭惗嶻幚愌楢実(SDEL-抂巕)
    * Date          : 2012/04/10 SIS-C 柎      怴婯嶌惉
    ***********************************************************************/

    --===========================
    -- 僌儘乕僶儖掕悢愰尵偲弶婜壔
    --===========================
    CVC_PID           CONSTANT VARCHAR2(10)                   := 'ZCPPCB1100' ;       -- 僾儘僌儔儉ID
    CVC_SOUKO_K       CONSTANT ZCPP_2010.SOUKO_K%TYPE         := '0201'       ;       -- 憅屔嬫暘'0201'
    CVC_SIIRESAKI_C   CONSTANT ZCPP_2010.SIIRESAKI_C%TYPE     := '1683'       ;       -- 巇擖愭僐乕僪 '1683'
    CVC_BUHIN_GROUP   CONSTANT ZCPP_2010.BUHIN_GROUP%TYPE     := 'KT'         ;       -- 昳栚僌儖乕僾 'KT'
    CVC_SDEL_KOTEI_C  CONSTANT ZCPP_9010.SDEL_KOTEI_C%TYPE    := '800'        ;       -- SDEL岺掱僐乕僪
    CVC_CREATED_BY    CONSTANT ZCPP_2010.CREATED_BY%TYPE      := 'SYSTEM'     ;       -- 嶌惉幰
  
    --=========================
    -- 僌儘乕僶儖曄悢愰尵
    --=========================
    PVC_STATUS                 VARCHAR2(1);              -- 張棟忬懺
    PVC_YYYYMMDD               VARCHAR2(8);              -- 張棟懳徾擔
    PVC_PRICE                  NUMBER;                   -- 壙奿
    PVN_ZCPP2010_DELETE_CNT    NUMBER := 0;              --亂巇擖愭惗嶻幚愌亃DELETE偺摑寁
    PVN_ZCPP2010_INSERT_CNT    NUMBER := 0;              --亂巇擖愭惗嶻幚愌亃INSERT偺摑寁
    PVN_ZCPP9010_DELETE_CNT    NUMBER := 0;              --亂惗嶻幚愌廳暋(抂巕)亃DELETE偺摑寁
    PVN_ZCPP9010_INSERT_CNT    NUMBER := 0;              --亂惗嶻幚愌廳暋(抂巕)亃INSERT偺摑寁
    PVN_ZCPP9510_INSERT_CNT    NUMBER := 0;              --亂惗嶻幚愌(抂巕)TMP亃DELETE偺摑寁
   
   
    /***********************************************************************
    * PROCEDURE     :init
    * DESCRIPTION   :弶婜張棟
    * Date          :2012/04/10 SIS-C 柎       怴婯嶌惉
    ***********************************************************************/
    PROCEDURE init IS

    BEGIN

        --===========================================================================
        -- 嫟捠娭悢丗儘僌弌椡張棟傪梡偄丄奐巒儘僌傪儘僌TBL偵弌椡偡傞丅丅
        --===========================================================================
        ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                     -- 僾儘僌儔儉ID
                                   'RB000001'                   -- 儊僢僙乕僕僐乕僪
                                   );

        --===========================================================================
        -- 張棟懳徾擔偑側偄応崌丄嫟捠娭悢丗斈梡僥乕僽儖偐傜丄張棟懳徾擔庢摼偡傞丅
        --===========================================================================
        IF PVC_YYYYMMDD IS NULL THEN
            PVC_YYYYMMDD := ZCPPCB0000_PKG.ZCPP_FS0002;
        ELSIF ZCPPCB0000_PKG.ZCPP_FC0001(PVC_YYYYMMDD) = ZCPPCB0000_PKG.C_ERR_STATUS THEN

            -- 堷悢張棟懳徾擔偑晄惓
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                             -- 僾儘僌儔儉ID
                                       'EB000007',                          -- 儊僢僙乕僕僐乕僪
                                       '堷悢張棟懳徾擔 = ' || PVC_YYYYMMDD  -- 儊僢僙乕僕撪梕
                                       );
            PVC_STATUS := ZCPPCB0000_PKG.C_ERR_STATUS;
            RETURN;

        END IF;

        PVC_STATUS              := ZCPPCB0000_PKG.C_NORMAL_STATUS;-- 張棟忬懺
        PVC_PRICE               := NULL;                          -- 壙奿
        PVN_ZCPP2010_DELETE_CNT := 0;                             --亂巇擖愭惗嶻幚愌亃DELETE偺摑寁
        PVN_ZCPP2010_INSERT_CNT := 0;                             --亂巇擖愭惗嶻幚愌亃INSERT偺摑寁
        PVN_ZCPP9010_DELETE_CNT := 0;                             --亂惗嶻幚愌廳暋(抂巕)亃DELETE偺摑寁
        PVN_ZCPP9010_INSERT_CNT := 0;                             --亂惗嶻幚愌廳暋(抂巕)亃INSERT偺摑寁
        PVN_ZCPP9510_INSERT_CNT := 0;                             --亂惗嶻幚愌(抂巕)TMP亃DELETE偺摑寁
       
    EXCEPTION
        WHEN OTHERS THEN
            -- 偦偺懠 僄儔乕
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                          -- 僾儘僌儔儉ID
                                       'EB000006',                       -- 儊僢僙乕僕僐乕僪
                                       'PROCEDURE:init ' || 'ERROR: ' ||
                                       SQLCODE || SQLERRM                -- 儊僢僙乕僕撪梕
                                       );

            PVC_STATUS := ZCPPCB0000_PKG.C_ERR_STATUS;

    END init;

    /***********************************************************************
    * PROCEDURE     :ZCPP_2010_SELECT
    * DESCRIPTION   :亂巇擖愭惗嶻幚愌亃偱丄堷悢丏張棟懳徾擔慜擔偺拪弌審悢
    * Date          :2012/04/10 SIS-C 柎       怴婯嶌惉
    ***********************************************************************/
    FUNCTION ZCPP_2010_SELECT RETURN NUMBER AS

        vn_count NUMBER := 0;                                                        --亂巇擖愭惗嶻幚愌亃審悢

    BEGIN
        SELECT COUNT(0)
          INTO vn_count
          FROM ZCPP_2010                                                              --亂巇擖愭惗嶻幚愌亃
         WHERE YYYYMMDD    = TO_CHAR(TO_DATE(PVC_YYYYMMDD,'YYYYMMDD') - 1,'YYYYMMDD') -- 擭寧擔
           AND SOUKO_K     = CVC_SOUKO_K                                              -- 憅屔嬫暘
           AND SIIRESAKI_C = CVC_SIIRESAKI_C                                          -- 巇擖愭僐乕僪
           AND BUHIN_GROUP = CVC_BUHIN_GROUP;                                         -- 昳栚僌儖乕僾

        RETURN vn_count;

    EXCEPTION
        WHEN OTHERS THEN
            -- 偦偺懠 僄儔乕
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                          -- 僾儘僌儔儉ID
                                       'EB000006',                       -- 儊僢僙乕僕僐乕僪
                                       'PROCEDURE:ZCPP_2010_SELECT ' || 'ERROR: ' ||
                                       SQLCODE || SQLERRM                -- 儊僢僙乕僕撪梕
                                       );

            PVC_STATUS := ZCPPCB0000_PKG.C_ERR_STATUS;

    END ZCPP_2010_SELECT;


    /***********************************************************************
    * PROCEDURE     :ZCPP_2010_DELETE
    * DESCRIPTION   :巇擖愭惗嶻幚愌柧嵶偐傜丄嶍彍懳徾僨乕僞傪嶍彍偡傞
    * Date          :2012/04/10 SIS-C 柎       怴婯嶌惉
    ***********************************************************************/
    PROCEDURE ZCPP_2010_DELETE IS

    BEGIN
        DELETE
          FROM ZCPP_2010                                      --亂巇擖愭惗嶻幚愌亃
         WHERE YYYYMMDD           = PVC_YYYYMMDD              -- 張棟懳徾擔
           AND SOUKO_K            = CVC_SOUKO_K               -- 憅屔嬫暘
           AND SIIRESAKI_C        = CVC_SIIRESAKI_C           -- 巇擖愭僐乕僪
           AND BUHIN_GROUP        = CVC_BUHIN_GROUP;          -- 昳栚僌儖乕僾

        PVN_ZCPP2010_DELETE_CNT  := PVN_ZCPP2010_DELETE_CNT + SQL%ROWCOUNT; --亂巇擖愭惗嶻幚愌亃偺摑寁

    EXCEPTION
        WHEN OTHERS THEN
            -- 偦偺懠 僄儔乕
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                          -- 僾儘僌儔儉ID
                                       'EB000006',                       -- 儊僢僙乕僕僐乕僪
                                       'PROCEDURE:ZCPP_2010_DELETE ' || 'ERROR: ' ||
                                       SQLCODE || SQLERRM                -- 儊僢僙乕僕撪梕
                                       );

            PVC_STATUS := ZCPPCB0000_PKG.C_ERR_STATUS;

    END ZCPP_2010_DELETE;

    /***********************************************************************
    * PROCEDURE     :ZCPP_9010_DELETE
    * DESCRIPTION   :惗嶻幚愌廳暋(抂巕)偐傜丄嶍彍懳徾僨乕僞傪嶍彍偡傞丅
    * Date          :2012/04/10 SIS-C 柎       怴婯嶌惉
    ***********************************************************************/
    PROCEDURE ZCPP_9010_DELETE IS

    BEGIN
        DELETE
          FROM ZCPP_9010                              --亂惗嶻幚愌廳暋(抂巕)亃
         WHERE YYYYMMDD          = PVC_YYYYMMDD       -- 張棟懳徾擔
           AND SDEL_KOTEI_C      = CVC_SDEL_KOTEI_C;  -- 岺掱僐乕僪

        PVN_ZCPP9010_DELETE_CNT  := PVN_ZCPP9010_DELETE_CNT + SQL%ROWCOUNT; --亂惗嶻幚愌廳暋(抂巕)亃DELETE偺摑寁

    EXCEPTION
        WHEN OTHERS THEN
            -- 偦偺懠 僄儔乕
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                          -- 僾儘僌儔儉ID
                                       'EB000006',                       -- 儊僢僙乕僕僐乕僪
                                       'PROCEDURE:ZCPP_9010_DELETE ' || 'ERROR: ' ||
                                       SQLCODE || SQLERRM                -- 儊僢僙乕僕撪梕
                                       );

            PVC_STATUS := ZCPPCB0000_PKG.C_ERR_STATUS;

    END ZCPP_9010_DELETE;

    /***********************************************************************
    * PROCEDURE     :ZCPP_9010_INSERT
    * DESCRIPTION   :惗嶻幚愌 (抂巕)TMP僥乕僽儖偐傜敔噦偑廳暋偟偰偄傞柧嵶傪拪弌偟丄惗嶻幚愌廳暋(抂巕)ZCPP_9010傊搊榐偡傞丅
    * Date          :2012/04/10 SIS-C 柎      怴婯嶌惉
    ***********************************************************************/
    PROCEDURE ZCPP_9010_INSERT IS

    BEGIN
        INSERT INTO ZCPP_9010(YYYYMMDD                        ,              --亂惗嶻幚愌廳暋(抂巕)亃
                              SDEL_HAKO_NO                    ,              -- 敔噦
                              SDEL_KOTEI_C                    ,              -- 岺掱僐乕僪
                              SDEL_KOTEI_NO                   ,              -- 岺掱噦
                              SDEL_BHN_C                      ,              -- 晹昳僐乕僪
                              SDEL_BUHIN_NM                   ,              -- 晹昳柤徧
                              SDEL_GYOSYA_C                   ,              -- 嬈幰僐乕僪
                              SDEL_TANTO_C                    ,              -- 扴摉幰僐乕僪h
                              SDEL_KENSYU_C                   ,              -- 専廂幰僐乕僪h
                              SDEL_P_NO                       ,              -- 僾儗僗婡噦
                              SDEL_SYUYO_SU                   ,              -- 惓婯廂梕悢
                              SDEL_JS_SYUYO                   ,              -- 幚嵺廂梕悢
                              SDEL_IDOBI_YMD                  ,              -- 堏摦擔
                              SDEL_IDOBI_HHMM                 ,              -- 堏摦帪崗
                              SDEL_J_YMD                      ,              -- 嶌嬈幚愌擔
                              SDEL_KATA_NO                    ,              -- 嬥宆噦
                              SDEL_SEHEN                      ,              -- 愝曄
                              SDEL_Z_LOT1                     ,              -- 嵽椏儘僢僩1
                              SDEL_D_LOT1                     ,              -- 僪儔儉噦侾
                              SDEL_Z_LOT2                     ,              -- 嵽椏儘僢僩2
                              SDEL_D_LOT2                     ,              -- 僪儔儉噦俀
                              SDEL_CREATE_YMD                 ,              -- 搊榐擔
                              SDEL_CREATE_HHMM                ,              -- 搊榐帪崗
                              SDEL_H_K                        ,              -- 抂悢嬫暘
                              SDEL_BIKO                       ,              -- 旛峫
                              CREATE_DATE                     ,              -- 嶌惉擔     
                              CREATED_BY                      ,              -- 嶌惉幰     
                              CREATE_PGM_ID                   ,              -- 嶌惉婡擻俬俢
                              UPDATE_DATE                     ,              -- 峏怴擔     
                              UPDATED_BY                      ,              -- 峏怴幰     
                              UPDATE_PGM_ID                                  -- 峏怴婡擻俬俢
                              )
                        SELECT
                              PVC_YYYYMMDD AS YYYYMMDD        ,              -- 擭寧擔
                              ZCPP_9510.SDEL_HAKO_NO          ,              -- 敔噦
                              ZCPP_9510.SDEL_KOTEI_C          ,              -- 岺掱僐乕僪
                              ZCPP_9510.SDEL_KOTEI_NO         ,              -- 岺掱噦
                              ZCPP_9510.SDEL_BHN_C            ,              -- 晹昳僐乕僪
                              ZCPP_9510.SDEL_BUHIN_NM         ,              -- 晹昳柤徧
                              ZCPP_9510.SDEL_GYOSYA_C         ,              -- 嬈幰僐乕僪
                              ZCPP_9510.SDEL_TANTO_C          ,              -- 扴摉幰僐乕僪h
                              ZCPP_9510.SDEL_KENSYU_C         ,              -- 専廂幰僐乕僪h
                              ZCPP_9510.SDEL_P_NO             ,              -- 僾儗僗婡噦
                              ZCPP_9510.SDEL_SYUYO_SU         ,              -- 惓婯廂梕悢
                              ZCPP_9510.SDEL_JS_SYUYO         ,              -- 幚嵺廂梕悢
                              ZCPP_9510.SDEL_IDOBI_YMD        ,              -- 堏摦擔
                              ZCPP_9510.SDEL_IDOBI_HHMM       ,              -- 堏摦帪崗
                              ZCPP_9510.SDEL_J_YMD            ,              -- 嶌嬈幚愌擔
                              ZCPP_9510.SDEL_KATA_NO          ,              -- 嬥宆噦
                              ZCPP_9510.SDEL_SEHEN            ,              -- 愝曄
                              ZCPP_9510.SDEL_Z_LOT1           ,              -- 嵽椏儘僢僩1
                              ZCPP_9510.SDEL_D_LOT1           ,              -- 僪儔儉噦侾
                              ZCPP_9510.SDEL_Z_LOT2           ,              -- 嵽椏儘僢僩2
                              ZCPP_9510.SDEL_D_LOT2           ,              -- 僪儔儉噦俀
                              ZCPP_9510.SDEL_CREATE_YMD       ,              -- 搊榐擔
                              ZCPP_9510.SDEL_CREATE_HHMM      ,              -- 搊榐帪崗
                              ZCPP_9510.SDEL_H_K              ,              -- 抂悢嬫暘
                              ZCPP_9510.SDEL_BIKO             ,              -- 旛峫
                              CREATE_DATE                     ,              -- 嶌惉擔     
                              CREATED_BY                      ,              -- 嶌惉幰     
                              CREATE_PGM_ID                   ,              -- 嶌惉婡擻俬俢
                              UPDATE_DATE                     ,              -- 峏怴擔     
                              UPDATED_BY                      ,              -- 峏怴幰     
                              UPDATE_PGM_ID                                  -- 峏怴婡擻俬俢
                         FROM ZCPP_9510                                      --亂惗嶻幚愌(抂巕)TMP)亃
                        WHERE ZCPP_9510.SDEL_HAKO_NO IN
                                                      (SELECT TMP.SDEL_HAKO_NO                     -- 敔噦
                                                         FROM ZCPP_9510 TMP                        --亂惗嶻幚愌(抂巕)TMP)亃
                                                        WHERE TMP.SDEL_KOTEI_C = CVC_SDEL_KOTEI_C  -- 岺掱僐乕僪
                                                     GROUP BY TMP.SDEL_HAKO_NO                     -- 敔噦
                                                       HAVING COUNT(0) > 1)
                          AND ZCPP_9510.SDEL_KOTEI_C  = CVC_SDEL_KOTEI_C;    -- 岺掱僐乕僪

        PVN_ZCPP9010_INSERT_CNT  := PVN_ZCPP9010_INSERT_CNT + SQL%ROWCOUNT;  --亂惗嶻幚愌廳暋(抂巕)亃INSERT偺摑寁

    EXCEPTION
        WHEN OTHERS THEN
            -- 偦偺懠 僄儔乕
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                          -- 僾儘僌儔儉ID
                                       'EB000006',                       -- 儊僢僙乕僕僐乕僪
                                       'PROCEDURE:ZCPP_9010_INSERT ' || 'ERROR: ' ||
                                       SQLCODE || SQLERRM                -- 儊僢僙乕僕撪梕
                                       );

            PVC_STATUS := ZCPPCB0000_PKG.C_ERR_STATUS;

    END ZCPP_9010_INSERT;


    /***********************************************************************
    * PROCEDURE     :ZCPP_9510_DELETE
    * DESCRIPTION   :惗嶻幚愌 (抂巕)TMP僥乕僽儖偐傜丄敔噦偑廳暋偟偰偄傞柧嵶傪慡偰嶍彍偡傞丅
    * Date          :2012/04/10 SIS-C 柎      怴婯嶌惉
    ***********************************************************************/
    PROCEDURE ZCPP_9510_DELETE IS

    BEGIN
        DELETE
          FROM ZCPP_9510
         WHERE ZCPP_9510.SDEL_HAKO_NO IN (SELECT ZCPP_95102.SDEL_HAKO_NO          -- 敔噦
                                            FROM ZCPP_9510 ZCPP_95102             --亂惗嶻幚愌(抂巕)TMP)亃
                                           WHERE ZCPP_95102.SDEL_KOTEI_C = CVC_SDEL_KOTEI_C  -- 岺掱僐乕僪
                                        GROUP BY ZCPP_95102.SDEL_HAKO_NO          -- 敔噦
                                          HAVING COUNT(0)>1
                                          )
           AND ZCPP_9510.SDEL_KOTEI_C = CVC_SDEL_KOTEI_C;  -- 岺掱僐乕僪
          
        PVN_ZCPP9510_INSERT_CNT := PVN_ZCPP9510_INSERT_CNT + SQL%ROWCOUNT ;       --亂惗嶻幚愌(抂巕)TMP亃DELETE偺摑寁
          
    EXCEPTION
        WHEN OTHERS THEN
            -- 偦偺懠 僄儔乕
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                          -- 僾儘僌儔儉ID
                                       'EB000006',                       -- 儊僢僙乕僕僐乕僪
                                       'PROCEDURE:ZCPP_9510_DELETE ' || 'ERROR: ' ||
                                       SQLCODE || SQLERRM                -- 儊僢僙乕僕撪梕
                                       );

            PVC_STATUS := ZCPPCB0000_PKG.C_ERR_STATUS;

    END ZCPP_9510_DELETE;

    /***********************************************************************
    * PROCEDURE     :ZCPP_2010_INSERT
    * DESCRIPTION   :(幚愌傪尦偵)巇擖愭惗嶻幚愌柧嵶嶌惉
    * Date          :2012/04/10 SIS-C 柎       怴婯嶌惉
    ***********************************************************************/
     PROCEDURE ZCPP_2010_INSERT AS

     BEGIN

         -- debug 儘僌弌椡
         ZCPPCB0000_PKG.ZCPP_PI0002(CVC_PID,                     -- 僾儘僌儔儉ID
                                   'RB000001',                   -- 儊僢僙乕僕僐乕僪
                                   'ZCPP_2010_INSERT'
                                   );
         INSERT INTO ZCPP_2010 (YYYYMMDD                       ,       -- 擭寧擔
                                SOUKO_K                        ,       -- 憅屔嬫暘
                                SIIRESAKI_C                    ,       -- 巇擖愭僐乕僪
                                BUHIN_GROUP                    ,       -- 昳栚僌儖乕僾
                                BUHIN_C                        ,       -- 晹昳僐乕僪
                                SESAN_JISSEKI_SUR              ,       -- 惗嶻幚愌悢
                                SESAN_JISSEKI_RUIKEI_SUR       ,       -- 惗嶻幚愌悢椵寁
                                SESAN_JISSEKI_KIN              ,       -- 惗嶻幚愌嬥妟
                                SESAN_JISSEKI_RUIKEI_KIN       ,       -- 惗嶻幚愌嬥妟椵寁
                                CREATE_DATE                    ,       -- 嶌惉擔
                                CREATED_BY                     ,       -- 嶌惉幰
                                CREATE_PGM_ID                  ,       -- 嶌惉婡擻俬俢
                                UPDATE_DATE                    ,       -- 峏怴擔
                                UPDATED_BY                     ,       -- 峏怴幰
                                UPDATE_PGM_ID)                         -- 峏怴婡擻俬俢
                         SELECT PVC_YYYYMMDD,                          -- 擭寧擔
                                CVC_SOUKO_K,                           -- 憅屔嬫暘
                                CVC_SIIRESAKI_C,                       -- 巇擖愭僐乕僪
                                CVC_BUHIN_GROUP,                       -- 昳栚僌儖乕僾
                                TRIM(ZCPP_9510.SDEL_BHN_C),            -- 晹昳僐乕僪
                                SUM(ZCPP_9510.SDEL_JS_SYUYO),          -- 惗嶻幚愌悢
                                DECODE(PVC_YYYYMMDD, SUBSTR(PVC_YYYYMMDD, 1, 6) || '01',
                                       SUM(ZCPP_9510.SDEL_JS_SYUYO),
                                       SUM(ZCPP_9510.SDEL_JS_SYUYO) + NVL(MAX(ZCPP_2010.SESAN_JISSEKI_RUIKEI_SUR), 0)
                                       ),                              -- 惗嶻幚愌悢椵寁
                                SUM(ZCPP_9510.SDEL_JS_SYUYO) * MAX(ZCPPCB0000_PKG.ZCPP_FS0001(ZCPP_9510.SDEL_BHN_C, PVC_YYYYMMDD)), -- 惗嶻幚愌嬥妟
                                DECODE(PVC_YYYYMMDD,
                                       SUBSTR(PVC_YYYYMMDD, 1, 6) || '01',
                                       SUM(ZCPP_9510.SDEL_JS_SYUYO) * MAX(ZCPPCB0000_PKG.ZCPP_FS0001(ZCPP_9510.SDEL_BHN_C, PVC_YYYYMMDD)),
                                       SUM(ZCPP_9510.SDEL_JS_SYUYO) * MAX(ZCPPCB0000_PKG.ZCPP_FS0001(ZCPP_9510.SDEL_BHN_C, PVC_YYYYMMDD)) +
                                       NVL(MAX(ZCPP_2010.SESAN_JISSEKI_RUIKEI_KIN), 0)
                                       ),                              -- 惗嶻幚愌嬥妟椵寁
                                SYSDATE,                               -- 嶌惉擔
                                CVC_CREATED_BY,                        -- 嶌惉幰
                                CVC_PID,                               -- 嶌惉婡擻俬俢
                                NULL,                                  -- 峏怴擔
                                NULL,                                  -- 峏怴幰
                                NULL                                   -- 峏怴婡擻俬俢
                           FROM ZCPP_9510                              -- 亂惗嶻幚愌 (抂巕)TMP亃
                           LEFT JOIN ZCPP_2010                         -- 亂巇擖愭惗嶻幚愌亃
                             ON YYYYMMDD               = TO_CHAR(TO_DATE(PVC_YYYYMMDD, 'YYYYMMDD') - 1, 'YYYYMMDD') --張棟懳徾擔慜擔
                            AND ZCPP_2010.SOUKO_K      = CVC_SOUKO_K               -- 憅屔嬫暘
                            AND ZCPP_2010.SIIRESAKI_C  = CVC_SIIRESAKI_C           -- 巇擖愭僐乕僪
                            AND ZCPP_2010.BUHIN_GROUP  = CVC_BUHIN_GROUP           -- 昳栚僌儖乕僾
                            AND ZCPP_2010.BUHIN_C      = ZCPP_9510.SDEL_BHN_C      -- 晹昳僐乕僪
                          WHERE ZCPP_9510.SDEL_KOTEI_C = CVC_SDEL_KOTEI_C          -- 岺掱僐乕僪
                       GROUP BY ZCPP_9510.SDEL_BHN_C;

             PVN_ZCPP2010_INSERT_CNT  := PVN_ZCPP2010_INSERT_CNT + SQL%ROWCOUNT; --亂巇擖愭惗嶻幚愌亃INSERT偺摑寁

         -- debug 儘僌弌椡
         ZCPPCB0000_PKG.ZCPP_PI0002(CVC_PID,                     -- 僾儘僌儔儉ID
                                   'RB000002',                   -- 儊僢僙乕僕僐乕僪
                                   'ZCPP_2010_INSERT'
                                   );
    EXCEPTION
        WHEN OTHERS THEN
            -- 偦偺懠 僄儔乕
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                          -- 僾儘僌儔儉ID
                                       'EB000006',                       -- 儊僢僙乕僕僐乕僪
                                       'PROCEDURE:ZCPP_2010_INSERT ' || 'ERROR: ' ||
                                       SQLCODE || SQLERRM                -- 儊僢僙乕僕撪梕
                                       );

            PVC_STATUS := ZCPPCB0000_PKG.C_ERR_STATUS;

    END ZCPP_2010_INSERT;

    /***********************************************************************
    * PROCEDURE     :ZCPP_2010_INSERT_DOUBLE
    * DESCRIPTION   :(幚愌傪尦偵)巇擖愭惗嶻幚愌柧嵶嶌惉
    * Date          :2012/04/10 SIS-C 柎       怴婯嶌惉
    ***********************************************************************/
    PROCEDURE ZCPP_2010_INSERT_DOUBLE AS
    BEGIN
         -- debug 儘僌弌椡
         ZCPPCB0000_PKG.ZCPP_PI0002(CVC_PID,                     -- 僾儘僌儔儉ID
                                   'RB000001',                   -- 儊僢僙乕僕僐乕僪
                                   'ZCPP_2010_INSERT'
                                   );

        INSERT INTO ZCPP_2010(YYYYMMDD                    ,           -- 擭寧擔
                              SOUKO_K                     ,           -- 憅屔嬫暘
                              SIIRESAKI_C                 ,           -- 巇擖愭僐乕僪
                              BUHIN_GROUP                 ,           -- 昳栚僌儖乕僾
                              BUHIN_C                     ,           -- 晹昳僐乕僪
                              SESAN_JISSEKI_SUR           ,           -- 惗嶻幚愌悢
                              SESAN_JISSEKI_RUIKEI_SUR    ,           -- 惗嶻幚愌悢椵寁
                              SESAN_JISSEKI_KIN           ,           -- 惗嶻幚愌嬥妟
                              SESAN_JISSEKI_RUIKEI_KIN    ,           -- 惗嶻幚愌嬥妟悢椵寁
                              CREATE_DATE                 ,           -- 嶌惉擔
                              CREATED_BY                  ,           -- 嶌惉幰
                              CREATE_PGM_ID               ,           -- 嶌惉婡擻俬俢
                              UPDATE_DATE                 ,           -- 峏怴擔
                              UPDATED_BY                  ,           -- 峏怴幰
                              UPDATE_PGM_ID)                          -- 峏怴婡擻俬俢
                       SELECT PVC_YYYYMMDD                          ,          -- 擭寧擔
                              ZCPP_2010.SOUKO_K                     ,          -- 憅屔嬫暘
                              ZCPP_2010.SIIRESAKI_C                 ,          -- 巇擖愭僐乕僪
                              ZCPP_2010.BUHIN_GROUP                 ,          -- 昳栚僌儖乕僾
                              ZCPP_2010.BUHIN_C                     ,          -- 晹昳僐乕僪
                              0                                     ,          -- 惗嶻幚愌悢
                              ZCPP_2010.SESAN_JISSEKI_RUIKEI_SUR    ,          -- 惗嶻幚愌悢椵寁
                              0                                     ,          -- 惗嶻幚愌嬥妟
                              ZCPP_2010.SESAN_JISSEKI_RUIKEI_KIN    ,          -- 惗嶻幚愌嬥妟悢椵寁
                              SYSDATE                               ,          -- 嶌惉擔
                              CVC_CREATED_BY                        ,          -- 嶌惉幰
                              CVC_PID                               ,          -- 嶌惉婡擻俬俢
                              NULL                                  ,          -- 峏怴擔
                              NULL                                  ,          -- 峏怴幰
                              NULL                                             -- 峏怴婡擻俬俢
                         FROM ZCPP_2010                                        --亂巇擖愭惗嶻幚愌亃
                        WHERE ZCPP_2010.YYYYMMDD    = TO_CHAR(TO_DATE(PVC_YYYYMMDD,'YYYYMMDD') - 1,'YYYYMMDD')  --張棟懳徾擔慜擔
                          AND ZCPP_2010.SOUKO_K     = CVC_SOUKO_K               -- 憅屔嬫暘
                          AND ZCPP_2010.SIIRESAKI_C = CVC_SIIRESAKI_C           -- 巇擖愭僐乕僪
                          AND ZCPP_2010.BUHIN_GROUP = CVC_BUHIN_GROUP           -- 昳栚僌儖乕僾 (抂巕)
                          AND NOT EXISTS(SELECT 0
                                           FROM ZCPP_9510                         --亂惗嶻幚愌 (抂巕)TMP亃
                                          WHERE ZCPP_9510.SDEL_KOTEI_C = CVC_SDEL_KOTEI_C      -- 岺掱僐乕僪(姰惉昳)
                                            AND ZCPP_9510.SDEL_BHN_C   = ZCPP_2010.BUHIN_C
                                        );

             PVN_ZCPP2010_INSERT_CNT  := PVN_ZCPP2010_INSERT_CNT + SQL%ROWCOUNT; --亂巇擖愭惗嶻幚愌亃INSERT偺摑寁

         -- debug 儘僌弌椡
         ZCPPCB0000_PKG.ZCPP_PI0002(CVC_PID,                     -- 僾儘僌儔儉ID
                                   'RB000002',                   -- 儊僢僙乕僕僐乕僪
                                   'ZCPP_2010_INSERT'
                                   );
    EXCEPTION
        WHEN OTHERS THEN
            -- 偦偺懠 僄儔乕
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                          -- 僾儘僌儔儉ID
                                       'EB000006',                       -- 儊僢僙乕僕僐乕僪
                                       'PROCEDURE:ZCPP_2010_INSERT_DOUBLE ' || 'ERROR: ' ||
                                       SQLCODE || SQLERRM                -- 儊僢僙乕僕撪梕
                                       );

            PVC_STATUS := ZCPPCB0000_PKG.C_ERR_STATUS;

    END ZCPP_2010_INSERT_DOUBLE;

    /***********************************************************************
    * PROCEDURE     :sub_main
    * DESCRIPTION   :僒僽儊僀儞張棟
    * Date          :2012/04/10 SIS-C 柎       怴婯嶌惉
    ***********************************************************************/
    PROCEDURE sub_main IS

    BEGIN
        --=================================================
        -- 巇擖愭惗嶻幚愌偲惗嶻幚愌廳暋(抂巕)柧嵶嶍彍
        --=================================================
        ZCPP_2010_DELETE;
        ZCPP_9010_DELETE;
       
        IF PVC_STATUS = ZCPPCB0000_PKG.C_ERR_STATUS THEN
            RETURN;
        END IF;

        --=================================================
        -- 廳暋柧嵶偺嶍彍偲惗嶻幚愌廳暋(抂巕)ZCPP_9010傊搊榐偡傞
        --=================================================
        ZCPP_9010_INSERT;
        ZCPP_9510_DELETE;

        IF PVC_STATUS = ZCPPCB0000_PKG.C_ERR_STATUS THEN
            RETURN;
        END IF;

        --=================================================
        -- 巇擖愭惗嶻幚愌柧嵶嶌惉
        --=================================================
        ZCPP_2010_INSERT;

        IF PVC_YYYYMMDD != SUBSTR(PVC_YYYYMMDD, 1, 6) || '01' THEN
            IF ZCPP_2010_SELECT > 0 THEN

                -- (幚愌傪尦偵)巇擖愭惗嶻幚愌柧嵶嶌惉
                ZCPP_2010_INSERT_DOUBLE;
            END IF;
        END IF;

    EXCEPTION
        WHEN OTHERS THEN
            -- 偦偺懠 僄儔乕
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                          -- 僾儘僌儔儉ID
                                       'EB000006',                       -- 儊僢僙乕僕僐乕僪
                                       'PROCEDURE:sub_main ' || 'ERROR: ' ||
                                       SQLCODE || SQLERRM                -- 儊僢僙乕僕撪梕
                                       );

            PVC_STATUS := ZCPPCB0000_PKG.C_ERR_STATUS;

    END sub_main;

    /***********************************************************************
    * PROCEDURE     :term
    * DESCRIPTION   :廔椆張棟
    * Date          :2012/04/10 SIS-C 柎      怴婯嶌惉
    ***********************************************************************/
    PROCEDURE term IS

    BEGIN

        IF PVC_STATUS <> ZCPPCB0000_PKG.C_ERR_STATUS THEN

            IF PVN_ZCPP2010_DELETE_CNT > 0 THEN

                --亂巇擖愭惗嶻幚愌亃DELETE審悢
                ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID, 'RB000008', ' TABLE = ' || 'ZCPP2010 ' || 'CNT = ' || PVN_ZCPP2010_DELETE_CNT);

            END IF;

            IF PVN_ZCPP2010_INSERT_CNT > 0 THEN

                --亂巇擖愭惗嶻幚愌亃INSERT審悢
                ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID, 'RB000006', ' TABLE = ' || 'ZCPP2010 ' || 'CNT = ' || PVN_ZCPP2010_INSERT_CNT);

            END IF;

            IF PVN_ZCPP9010_DELETE_CNT > 0 THEN

                --亂惗嶻幚愌廳暋(抂巕)亃DELETE審悢
                ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID, 'RB000008', ' TABLE = ' || 'ZCPP9010 ' || 'CNT = ' || PVN_ZCPP9010_DELETE_CNT);

            END IF;

            IF PVN_ZCPP9010_INSERT_CNT > 0 THEN

                --亂惗嶻幚愌廳暋(抂巕)亃INSERT審悢
                ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID, 'RB000006', ' TABLE = ' || 'ZCPP9010 ' || 'CNT = ' || PVN_ZCPP9010_INSERT_CNT);

            END IF;
           
            IF PVN_ZCPP9510_INSERT_CNT > 0 THEN

                --亂惗嶻幚愌(抂巕)TMP亃DELETE審悢
                ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID, 'RB000006', ' TABLE = ' || 'ZCPP9510 ' || 'CNT = ' || PVN_ZCPP9510_INSERT_CNT);

            END IF;
           
        END IF;

        --===========================================================================
        --丂嫟捠娭悢丗儘僌弌椡張棟傪梡偄丄廔椆儘僌傪儘僌TBL偵弌椡偡傞丅
        --===========================================================================
        IF PVC_STATUS = ZCPPCB0000_PKG.C_NORMAL_STATUS THEN
            -- 惓忢廔椆
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                     -- 僾儘僌儔儉ID
                                       'RB000002'                   -- 儊僢僙乕僕僐乕僪
                                       );

            COMMIT;
        ELSIF PVC_STATUS = ZCPPCB0000_PKG.C_ERR_STATUS THEN
            -- 堎忢廔椆
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                     -- 僾儘僌儔儉ID
                                       'RB000004'                   -- 儊僢僙乕僕僐乕僪
                                       );
            ROLLBACK;
        ELSE
            -- 寈崘廔椆
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                     -- 僾儘僌儔儉ID
                                       'RB000003'                   -- 儊僢僙乕僕僐乕僪
                                       );
            COMMIT;
        END IF;

    EXCEPTION
        WHEN OTHERS THEN
            -- 偦偺懠 僄儔乕
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                          -- 僾儘僌儔儉ID
                                       'EB000006',                       -- 儊僢僙乕僕僐乕僪
                                       'PROCEDURE:term ' || 'ERROR: ' ||
                                       SQLCODE || SQLERRM                -- 儊僢僙乕僕撪梕
                                       );

            PVC_STATUS := ZCPPCB0000_PKG.C_ERR_STATUS;

    END term;

    /***********************************************************************
    * PROCEDURE     :main
    * DESCRIPTION   :儊僀儞張棟
    * Date          :2012/04/10 SIS-C 柎       怴婯嶌惉
    ***********************************************************************/
     PROCEDURE main(IVC_YYYYMMDD  IN  VARCHAR2,  -- 張棟懳徾擔
                    OVN_RETURN     OUT NUMBER) IS

     BEGIN

         PVC_YYYYMMDD := IVC_YYYYMMDD;

         --=========================
         -- 弶婜張棟
         --=========================
         init;

         IF PVC_STATUS <> ZCPPCB0000_PKG.C_ERR_STATUS THEN

             --===================================
             -- 僒僽儊僀儞張棟
             --===================================
             sub_main;
            
         END IF;

         --=========================
         -- 廔椆張棟
         --=========================
         term;

         OVN_RETURN := PVC_STATUS;

    EXCEPTION
        WHEN OTHERS THEN
            -- 偦偺懠 僄儔乕
            ZCPPCB0000_PKG.ZCPP_PI0001(CVC_PID,                          -- 僾儘僌儔儉ID
                                       'EB000006',                       -- 儊僢僙乕僕僐乕僪
                                       'PROCEDURE:main ' || 'ERROR: ' ||
                                       SQLCODE || SQLERRM                -- 儊僢僙乕僕撪梕
                                       );
            OVN_RETURN := ZCPPCB0000_PKG.C_ERR_STATUS;
            ROLLBACK;

     END main;

END ZCPPCB1100_PKG;
/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章