如果測試時,希望一次新增10000筆資料該如何處理,以下整理一些常見語法
- 使用傳統FOR LOOP
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;
/
- 使用 CONNECT BY LEVEL 語法
這是階層式查詢的技巧,其中的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其後的位置新增資料