`

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;
/

分享到:
评论

相关推荐

    Oracle PL/SQL by Example(4th Edition)

    《Oracle PL/SQL by Example(4th Edition)》是一本专为Oracle数据库用户设计的PL/SQL编程指南,尤其适合那些希望通过实践学习这一强大的过程式语言的开发者。本书的第四版详细介绍了Oracle PL/SQL的各种核心概念和...

    Oracle PL/SQL实例编程(PL/SQL经典书籍)

    Oracle PL/SQL是一种强大的编程语言,它将数据库管理和应用程序逻辑紧密结合起来,是Oracle数据库系统中的核心组件之一。这本书“Oracle PL/SQL实例编程”显然旨在深入讲解如何利用PL/SQL进行实际开发工作,通过实例...

    Oracle Pl/sql By Example

    Oracle® PL/SQL™ by Example, Third Edition By Benjamin Rosenzweig, Elena Silvestrova Publisher : Prentice Hall PTR Pub Date : September 10, 2003 ISBN : 0-13-117261-1 Pages : 768

    sql pl/sql存储过程

    SQL and Pl/SQL培训文档 第一天 第一章 PL/SQL 简介 安装scott/tigger用户模式 Example1 标准的PL/SQL块结构 PL/SQL块类型 Example2:子程序,函数,程序包 PL/SQL代码的执行 第二章 PL/SQL数据类型 预定义数据类型 ...

    oracle pl/sql by example

    《Oracle PL/SQL by Example》是一本专注于Oracle数据库系统中PL/SQL编程语言的经典教程。PL/SQL,全称为Procedural Language/SQL,是Oracle数据库内置的一种过程化编程语言,它结合了SQL的查询能力与面向过程的编程...

    Oracle PLSQL by Example, 5th Edition

    本书通过实际的实验、示例和项目来讲解你所需的全部PL/SQL技能,它涵盖从基础语法、程序控制到最新的优化和安全增强等方面的知识。读者循序渐进地学习每个关键任务,自己就能掌握当今最有价值的Oracle12c的PL/SQL...

    PL.SQL.By.Example

    《PL.SQL by Example》是一本专注于Oracle数据库PL/SQL编程实践的资源,它提供了一系列的实例脚本,旨在帮助读者深入理解和掌握PL/SQL语言。PL/SQL是Oracle数据库系统中的一个关键组件,用于开发存储过程、触发器、...

    Oracle PL/SQL by Example, Third Edition

    英文原版 Start developing applications with Oracle PL/SQL

    OraclePLSQLbyExample

    《Oracle PL/SQL by Example》是一本专注于Oracle数据库系统中PL/SQL编程语言的经典教程,由Prentice Hall出版社出版的第四版。该书详细介绍了如何利用PL/SQL这一强大的编程工具来解决实际的数据库问题,是Oracle...

    Oracle PL_SQL by Example 4th.Edition.Aug.2008

    《Oracle PL_SQL by Example》第四版是Oracle数据库开发者的一本权威指南,专注于PL/SQL编程语言的实践应用。这本书在2008年8月发行,以其深入浅出的讲解和丰富的实例,深受广大读者的喜爱。它不仅是初学者的良师,...

    Oracle PL SQL Programming(6th) 无水印pdf

    Oracle PL SQL Programming(6th) 英文无水印pdf 第6版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请...

    oracle 11g 64位安装32位客户端和PL/SQL

    以下是关于“Oracle 11g 64位安装32位客户端和PL/SQL”的详细说明: 1. **准备工作**: - 首先,你需要下载适用于32位操作系统的Oracle Instant Client。Oracle官网提供了不同版本的下载,确保选择与你的11g数据库...

    pl/sql developer 监听、tnsnames.ora

    PL/SQL Developer是一款由Infragistics公司开发的Oracle数据库管理和开发工具,它为数据库管理员和开发者提供了集成的环境,便于编写、测试和调试PL/SQL代码。在Oracle数据库环境中,监听和`tnsnames.ora`文件是两个...

    advanced oracle pl-sql

    these are low-level packages that you can use to enhance your development -- for example, string parsers, a list manager, and an interface to PL/SQL tables. ············

    Prentice.Hall.Oracle.PL.SQL.by.Example.4th.Edition.Aug.2008

    根据提供的文件信息,本书《Oracle PL/SQL by Example 第四版》主要针对Oracle数据库的PL/SQL语言进行了详细的介绍和示例讲解。本书由Benjamin Rosenzweig和Elena Silvestrova Rakhimov共同编写,由Prentice Hall...

    oracle_pl_sql_by_example_4th_edition

    《Oracle PL/SQL by Example, 4th Edition》是一本专为Oracle数据库用户和开发者编写的PL/SQL编程指南。这本书深入浅出地介绍了Oracle的PL/SQL编程语言,是学习和提升PL/SQL技能的重要参考资料。PL/SQL是Oracle...

    详尽的ORCLE 教程

    同时,会涉及PL/SQL编程,这是Oracle特有的过程式语言,用于创建存储过程、函数、触发器等数据库对象。 表的设计与管理是数据库管理员的日常工作。教程会讲述如何创建、修改和删除表,以及索引的使用和管理。还会...

    PL:Sql script .zip_sql

    描述中的"example pl sql script"指出这是一个示例PL/SQL脚本。这可能是一个教学或演示用的代码,用于展示如何在PL/SQL环境中编写和执行各种操作,如数据查询、事务处理、存储过程、函数、触发器等。 标签"sql...

    plsql调用webservice.rar

    在IT行业中,PL/SQL是Oracle数据库的一种编程语言,它扩展了SQL的语法,使得开发者可以编写复杂的存储过程、函数和触发器等。本话题主要关注如何在PL/SQL环境中调用Web服务,即Web Service。Web Service是一种基于...

    Beginning Oracle PL-SQL(Apress,2ed,2015)

    Author Don Bales provides in Beginning Oracle PL/SQL a fast-paced and example-filled tutorial. Learn from Don's extensive experience to discover the most commonly used aspects of PL/SQL, without ...

Global site tag (gtag.js) - Google Analytics