<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 閱讀(1968) 評論(0)  編輯  收藏 所屬分類: Oracle

    主站蜘蛛池模板: 国产亚洲精品美女久久久| 亚洲AV日韩精品一区二区三区| 不卡精品国产_亚洲人成在线| 深夜a级毛片免费无码| 亚洲国产精品专区在线观看| 天天综合亚洲色在线精品| 免费黄色app网站| 极品色天使在线婷婷天堂亚洲| 国产高清视频在线免费观看| 在线观看亚洲免费视频| 国产hs免费高清在线观看| 无码AV动漫精品一区二区免费| 亚洲成av人片一区二区三区| 国产福利在线观看永久免费| 亚洲乱码日产一区三区| 免费人成网站在线观看不卡| 亚洲天堂中文字幕| 免费在线观看的网站| 精品亚洲成a人在线观看| 亚洲AV无码乱码在线观看牲色| 久青草国产免费观看| 国产亚洲精品一品区99热| 人妻无码一区二区三区免费| 亚洲中文无码线在线观看| 野花高清在线观看免费3中文| 国产亚洲综合一区二区三区| 亚洲熟妇无码AV在线播放| 外国成人网在线观看免费视频| 亚洲一级毛片视频| 男人的天堂亚洲一区二区三区| 亚洲av色香蕉一区二区三区| 国产亚洲精品成人a v小说| 最近免费字幕中文大全视频| 亚洲欧美日韩一区二区三区在线| 2048亚洲精品国产| 91嫩草免费国产永久入口| 国产偷国产偷亚洲清高APP| 中文字幕亚洲日韩无线码| 国产精品色拉拉免费看| 九九久久国产精品免费热6| 亚洲精品美女久久久久|