千万级数据迁移版本3

PROCEDURE MIGRATE_LIVE_EVENT AS
    CURSOR LIVE_EVENT_RECORD
      IS SELECT/*+parallel(8)*/ E.*,A.SCHEDULE_ID FROM DYBF_RB_LIVE_EVENT E
      LEFT JOIN (SELECT S.MATCH_ID,S.SCHEDULE_ID,M.THIRD_ID FROM DYBF_SCHEDULE S
      LEFT JOIN THIRD_MATCH M ON S.MATCH_ID = M.ID
      WHERE S.MATCH_ID IS NOT NULL) A ON A.THIRD_ID = E.GAME_ID
      WHERE A.SCHEDULE_ID IS NOT NULL;
    ROW_LIVE_EVENT LIVE_EVENT_RECORD%ROWTYPE;
    NEW_LIVE_EVENT_ID BF_RB_LIVE_EVENT.ID%TYPE;
    
    S_D TIMESTAMP;
    E_D TIMESTAMP;
    
  BEGIN
--DBMS_OUTPUT.PUT_LINE(SYSTIMESTAMP || '  开始迁移DYBF_DETAIL_RESULT表中球探赛事结果数据...');
    S_D := SYSTIMESTAMP;
    OPEN LIVE_EVENT_RECORD;
    LOOP
      FETCH LIVE_EVENT_RECORD INTO ROW_LIVE_EVENT;
      EXIT WHEN LIVE_EVENT_RECORD%NOTFOUND;
      SELECT SEQ_BF_RB_COMM_ID.NEXTVAL INTO NEW_LIVE_EVENT_ID FROM DUAL;
      INSERT /*+APPEND*/ INTO BF_RB_LIVE_EVENT
      (
       ID,
       GAME_ID,
       EVENT_NUM,
       RB_CODE_ID,
       CUR_TIME,
       RE_EVENT_NUM,
       ADD_INFO,
       STATE
      )
      VALUES
      (
       NEW_LIVE_EVENT_ID,
       ROW_LIVE_EVENT.SCHEDULE_ID,
       ROW_LIVE_EVENT.EVENT_NUM,
       ROW_LIVE_EVENT.RB_CODE_ID,
       ROW_LIVE_EVENT.CUR_TIME,
       ROW_LIVE_EVENT.RE_EVENT_NUM,
       ROW_LIVE_EVENT.ADD_INFO,
       ROW_LIVE_EVENT.STATE
      );
      
      IF MOD(LIVE_EVENT_RECORD%ROWCOUNT,FLAG) = 0 THEN
        COMMIT;
      END IF;
      
    END LOOP;
    COMMIT;
--DBMS_OUTPUT.PUT_LINE (SYSTIMESTAMP || ' 共完成处理的数据量(DYBF_RB_LIVE_EVENT):' || LIVE_EVENT_RECORD%ROWCOUNT);    
    E_D := SYSTIMESTAMP;
    MIGRATE_EXECUTE_TIME('MIGRATE_BATCH_LIVE_EVENT',S_D,E_D,LIVE_EVENT_RECORD%ROWCOUNT);
    
    EXCEPTION
      WHEN OTHERS THEN
      ROLLBACK;
      INSERT_ERR_INFO(SQLERRM,'MIGRATE_QT_RESULT_DETAIL',ROW_LIVE_EVENT.ID);
      DBMS_OUTPUT.PUT_LINE
      (
        '当前处理失败的数据:[赛事事件编号=' || ROW_LIVE_EVENT.ID || ' ]' || ' [异常信息:'
        || SQLERRM || ']'    
      );
    CLOSE  LIVE_EVENT_RECORD;
  END MIGRATE_LIVE_EVENT;

posted @ 2016-11-19 16:57  luoqiyi  阅读(203)  评论(0编辑  收藏  举报