행위

DAILY 테이블 동기 화 프로시져

DB CAFE

thumb_up 추천메뉴 바로가기


CREATE OR REPLACE PROCEDURE SP_DAILY_STG_SYNC_TABLE
/*

-- 2019/11/25
-- 일일 동기화 테이블

-- ----------------------------------------------------------------
-- 0.일일백업 대상
SELECT OWNER,TABLE_NAME
  FROM TB_DBM_TABLES A
  WHERE  A.STG_SYNC_YN= 'Y' 
  ;
  
-- 1.일일 동기화 테이블 백업      테이블 
-- 2.일일 동기화 테이블 TRUNCATE
-- 3.일일 동기화 테이블 복사 정비 => 개발 

  
*/

(
    IN_DATE IN VARCHAR2 DEFAULT TO_CHAR(SYSDATE,'YYYYMMDD')    
)
IS
/* 1.권한관리테이블에 추가 대상  */
    CURSOR DAILY_BACKUP_TABLE IS
    
    SELECT OWNER,TABLE_NAME
      FROM TB_DBM_TABLES@DL_SCOTT_DEV_SCOTT_DBA A
      WHERE  A.STG_SYNC_YN= 'Y' 
      ;
                                                     
--    V_SQL   VARCHAR2(1000);
--    V_T_SQL  VARCHAR2(1000);
--    V_MV_SQL  VARCHAR2(2000);

    V_OWNER  VARCHAR2(100);
    V_TABLE_NAME  VARCHAR2(100);
    --V_GRANTOR  VARCHAR2(100);
    --V_PRIVILEGE  VARCHAR2(100);
    --V_OBJECT_TYPE  VARCHAR2(100);
    
    --V_GRANT_REVOKE_GBN VARCHAR2(100);
    
    --V_MSG       long;     
    
    
BEGIN

    DBMS_OUTPUT.ENABLE;     
     
    FOR V_ROW IN DAILY_BACKUP_TABLE
    LOOP    

        V_OWNER:= V_ROW.OWNER;
        V_TABLE_NAME:= V_ROW.TABLE_NAME;

      -- 2.데이터 이관 
      -- V_MV_SQL  := 'sp_dbm_copy(p_tname => '''||V_ROW.TABLE_NAME||''' , p_dblink   => ''DL_SCOTT_DEV_SCOTT_DBA'' , p_option   => ''R'', p_exec     => 1 , p_owner    => '''||V_ROW.OWNER||''' , p_srcowner => '''||V_ROW.OWNER||''' , p_srctname => '''||V_ROW.OWNER||''')';
      sp_dbm_copy(p_tname => V_ROW.TABLE_NAME, p_dblink => 'DL_SCOTT_STG_SCOTT_DBA', p_option => 'R', p_exec => 1 , p_owner => V_ROW.OWNER);
    END LOOP;
END;
/