We have created a awesome theme
Far far away,behind the word mountains, far from the countries

INFO ½ÇÀü DB¸ðµ¨¸µ°ú SQL°úÁ¤

INFO

½ÇÀü DB¸ðµ¨¸µ°ú SQL°úÁ¤
Á¶È¸¼ö 331
Á¦¸ñ Chapter5_DBObject : ¿¹Á¦¸ðÀ½4[¿¹ 5_2_9]
ÀÛ¼ºÀÚ °ü¸®ÀÚ
ÀÛ¼ºÀÏÀÚ 2021-12-03

¡á¿¹ 5_2_9  ||  ÀýÂ÷ÀûÀ¸·Î ÇÁ·Î±×·¡¹ÖÀ» ÇÑ °³ÀÇ SQL·Î ÀÛ¼ºÇÑ ÇÁ·Î½ÃÀú
CREATE OR REPLACE PROCEDURE SP_DAILY_RESULT
/*                         Àϸ¶°¨ÀÛ¾÷                                        */
/* »ý¼ºÀÏ :                                                                  */
/* »ý¼ºÀÚ :                                                                  */
/* ³»¿ë   : ȸ¿øÁ¦¼­ºñ½ºÀÌ¿ë³»¿ª ÀÓ½ÃÅ×ÀÌºí¿¡ ÀúÀåµÈ ÀڷḦ °¡Á®¿Í           */
/*          ȸ¿øÁ¦¼­ºñ½ºÀÌ¿ë³»¿ª Å×À̺í Table ¿¡ ¹Ý¿µ                        */

(S_CLICK_YMD  IN   MEMB_SERVICE_RESULT_WORK.CLICK_YMD%TYPE,       -- ÆǸÅÁ¦ÇÑÀÏÀÚ.
 S_P_SABUN    IN   MEMB_SERVICE_RESULT.P_SABUN%TYPE,              -- °ü¸®ÀÚÀÇ »ç¹øÀ» °¡Á®¿Â´Ù
 SERROR       OUT  VARCHAR2) AS

sExecuDescription           VARCHAR2(500);        --procedure°¡ ½ÇÇàµÇ´Â À§Ä¡¸¦
USER_EXCEPT EXCEPTION;
BEGIN
   DELETE
   FROM MEMB_SERVICE_RESULT
   WHERE SALE_YMD = S_CLICK_YMD;
 
   INSERT
   INTO MEMB_SERVICE_RESULT
        (PARTNER_CD,SALE_YMD,BARCODE,SUB_BARCODE,PRODUCT_CD,MENU_GB,LINK_CLASS,    
         UPPER_LINK_CLASS,READ_CNT,CP_CD,P_DATE,P_SABUN)
____SELECT '00001',
          A.CLICK_YMD, A.BARCODE, A.SUB_BARCODE,
          DECODE(A.MENU_GB,'100','100',B.PRODUCT_CD) PRODUCT_CD,
          A.MENU_GB, B.LINK_CLASS,
          SUBSTR(NVL(B.LINK_CLASS,'00'),1,2) UPPER_LINK_CLASS,
          A.READ_CNT, B.CP_CD, SYSDATE, S_P_SABUN
     FROM
(
         SELECT A.CLICK_YMD, A.BARCODE, A.SUB_BARCODE,
                A.MENU_GB,
                TO_NUMBER(COUNT(A.BARCODE)) READ_CNT
           FROM____   MEMB_SERVICE_RESULT_WORK A, MEMB_BASE B
         WHERE  A.CLICK_YMD = S_CLICK_YMD
         AND   ( A.MENU_GB ='004' OR A.MENU_GB ='005' OR A.MENU_GB = '011' OR A.MENU_GB = '100')
         AND  A.MEMB_NO =  B.MEMB_NO
         AND  B.MEMB_GB <> '005'     --¹«·áȸ¿øÀº °É·¯³½´Ù
         GROUP BY A.CLICK_YMD, A.BARCODE, A.SUB_BARCODE,A.MENU_GB
         ) A,
         PRODUCT_MAST B
   WHERE A.BARCODE = B.BARCODE
   );
COMMIT;
   --Stored Procedure LogÈ­ÀÏ »ý¼º..
   SP_LOGWRITE('SP_DAILY_SERVICE_RESULT_001','»ý¼ºÀÏÀÚ:'||S_CLICK_YMD, NULL,SERROR, SERROR);
--raise USER_EXCEPT;
EXCEPTION
 WHEN USER_EXCEPT THEN
  ROLLBACK;
 SERROR := 'user exception';
 RAISE_APPLICATION_ERROR ( -20001, sExecuDescription ||'  USER_EXCEPT ');
 WHEN DUP_VAL_ON_INDEX THEN
  ROLLBACK;
  SP_ERRLOGWRITE('SP_DAILY_SERVICE_RESULT_001','ÆǸÅÀÏÀÚ:'||S_CLICK_YMD, S_P_SABUN,'ERR', SQLERRM,SERROR);
 SERROR := 'DATA DUPLICATE!!  error code:'||SQLCODE;
 RAISE_APPLICATION_ERROR ( -20001, sExecuDescription ||'->DATA DUPLICATE ERROR!!
 error code:'||SQLCODE);
 WHEN NO_DATA_FOUND THEN
  ROLLBACK;
  SP_ERRLOGWRITE('SP_DAILY_SERVICE_RESULT_001','ÆǸÅÀÏÀÚ:'||S_CLICK_YMD, S_P_SABUN,'ERR', SQLERRM,SERROR);
  SERROR := 'DATA NOT FOUND!!   error code:'||SQLCODE;
 RAISE_APPLICATION_ERROR ( -20001, sExecuDescription ||'->DATA NOT FOUND ERROR!!
 error code:'||SQLCODE);
WHEN OTHERS THEN
  ROLLBACK;
  SP_ERRLOGWRITE('SP_DAILY_SERVICE_RESULT_001','ÆǸÅÀÏÀÚ:'||S_CLICK_YMD, S_P_SABUN,'ERR', SQLERRM,SERROR);
  SERROR := '´ÜÀ§¾÷¹« DATA OTHERS ERROR!!  error code:'||SQLCODE;
  RAISE_APPLICATION_ERROR ( -20001, sExecuDescription ||'->DATA OTHERS ERROR!!
  error code:'||SQLCODE);
END SP_DAILY_RESULT;
/

÷ºÎÆÄÀÏ