<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ……天天向上

    好的想法總是無窮無盡

    統計

    留言簿(1)

    閱讀排行榜

    評論排行榜

    ORACLE復制千萬級數據表時用的存儲過程

    CREATE OR REPLACE PROCEDURE "LARGEDATA_INSERT" (ip_table_name   in varchar2, --目標表
                                              ip_table_column in varchar2, --目標字段
                                              ip_table_select in varchar2, --SELECT 查詢語句
                                              return_result   out number --返回的結果1,表示成功,0表示失敗
                                              ) as
    --適合大數據量的插入模板  create Templates by chenzhoumin 20110614
      runTime number;--運行總次數
      i       number;--當前行數
      amount  number;--總行數
      s_sql   varchar2(10000);--SQL語句
      e_sql   varchar2(10000);--執行SQL語句
      countNumber number;--一次插入的數據量
    begin
      --set serveroutput on size 20000000000000
      countNumber := 10000;
      return_result := 0; --開始初始化為0
      --核必邏輯內容,可根據具體的業務邏輯來定義,統計數據總行數
      s_sql := 'select count(1) from (' || ip_table_select || ')';
      execute immediate s_sql
        into amount;
      --每100萬提交一次
      runTime := amount mod countNumber;
      if (runTime > 0) then
        runTime := 1 + trunc(amount / countNumber);
      end if;
      if (runTime = 0) then
        runTime := 0 + trunc(amount / countNumber);
      end if;
      FOR i IN 1 .. runTime LOOP
        e_sql := 'insert into '||ip_table_name ||'
        ('||ip_table_column ||')
         select '|| ip_table_column ||'
         from
         (select selectSec.*, rownum rownumType
              from ('|| ip_table_select ||') selectSec
             WHERE ROWNUM <= '|| i * countNumber ||')
        WHERE rownumType > '||(i - 1) * countNumber;
        dbms_output.enable(99999999999999);
        dbms_output.put_line(e_sql);
        execute immediate e_sql;
        --提交
        commit;
      END LOOP;
      return_result := 1;
      return;
    exception
      when others then
        return_result := 0;
        raise;
        dbms_output.enable(99999999999999);
        dbms_output.put_line('結束');
        return;
    end;



    以上測試通過。

    posted on 2012-07-09 15:06 japper 閱讀(1967) 評論(0)  編輯  收藏 所屬分類: Oracle

    主站蜘蛛池模板: 91在线视频免费看| 亚洲熟女一区二区三区| 一区二区三区AV高清免费波多| 亚洲伊人成无码综合网 | 免费H网站在线观看的| 亚洲精品欧美综合四区| 在线观看亚洲精品福利片| 亚洲电影免费观看| 日本黄页网址在线看免费不卡| 亚洲制服中文字幕第一区| 国产成人精品男人免费| 免费福利在线视频| 亚洲国产AV无码一区二区三区| 国产亚洲情侣一区二区无| 日韩精品成人无码专区免费 | 两个人的视频www免费| 亚洲fuli在线观看| 亚洲亚洲人成综合网络| 好男人www免费高清视频在线| 丝袜捆绑调教视频免费区| 色天使亚洲综合在线观看| 亚洲精品你懂的在线观看| 毛片免费观看网址| 性xxxxx大片免费视频| 午夜亚洲国产精品福利| 亚洲午夜电影一区二区三区| 国产成人亚洲综合无码| 日韩免费观看视频| 国产精品久久免费| 男人的天堂网免费网站| 免费无码又爽又黄又刺激网站| 亚洲午夜精品在线| 亚洲AV成人片色在线观看| 亚洲精品国产精品乱码不卡| 天天操夜夜操免费视频| 久久久久久夜精品精品免费啦| 免费国产va视频永久在线观看| 亚洲色大成WWW亚洲女子| 亚洲精品无码久久久久久久| 亚洲精品高清无码视频| 亚洲精品和日本精品|