1. 程式人生 > >Oracle資料庫分批插入資料的指令碼

Oracle資料庫分批插入資料的指令碼

1、指令碼如下:

--分批提交指令碼
declare
  Type v_rowid is table of varchar2(100) index by binary_integer; --定義rowid型別
  var_rowid v_rowid; --定義rowid變數
  cursor v_cur is
    select ROWID FROM t3;
BEGIN
  OPEN v_cur;
  loop
    FETCH v_cur BULK COLLECT
      INTO var_rowid LIMIT 5000;
    FORALL i IN 1 .. var_rowid.count
      insert into t2 select * from t3 where ROWID = var_rowid(i);
    COMMIT;
    EXIT WHEN v_cur%NOTFOUND OR v_cur%NOTFOUND IS NULL;
  END LOOP;
  CLOSE v_cur;
end;

2、指令碼說明:

指令碼中t2表為插入的目標表,t3為源表。每次提交5000條資料。