ORACLE DB 的學習者們

2018年11月30日 星期五

如何快速新增大筆資料至資料庫

如果測試時,希望一次新增10000筆資料該如何處理,以下整理一些常見語法


  1.  使用傳統FOR LOOP
  2. FOR LOOP 的方法可以在迴圈內部放你要的SQL
           create table large(c1 char(1000));
           begin
              for i in 1..2000 loop
                 insert into large values ('a row');
              end loop;
           end;
            /
        
  3.  使用 CONNECT BY LEVEL 語法
  4. 這是階層式查詢的技巧,其中的LEVEL是一個虛擬欄位,紀錄的是在階層結構中的階層數
             CREATE TABLE test_tab (
                  id          NUMBER,
                  description VARCHAR2(50),
                  CONSTRAINT test_tab_pk PRIMARY KEY (id)
              );
    
             INSERT /*+ APPEND */ INTO test_tab (id, description)
                SELECT level,
                       'Description for ' || level
                FROM   dual
                 CONNECT BY level <= 10000; 
        
    其中SQL的DIRECTIVE /*+ APPEND */是指忽略HIGH WATER MARK,從HIGH WATER MARK其後的位置新增資料