定義序列名稱為 oracle_table_seq
方式1
insert into oracle_table (id,code)
select id,code from (
select oracle_table_seq.nextval as id, '1' as code from dual
union all
select oracle_table_seq.nextval as id, '1' as code from dual
union all
select oracle_table_seq.nextval as id, '1' as code from dual
union all
select oracle_table_seq.nextval as id, '1' as code from dual
) ;
直接把序列名稱.nextval替換對應值即可
方式2
begin
insert into oracle_table ( id, code ) values( oracle_table_seq.nextval , '1' );
insert into oracle_table ( id, code ) values( oracle_table_seq.nextval , '2' );
insert into oracle_table ( id, code ) values( oracle_table_seq.nextval , '3' );
insert into oracle_table ( id, code ) values( oracle_table_seq.nextval , '4' );
end;
同樣, 序列名稱.nextval替換對應值即可
額外說明
以上是兩種使用序列進行批量插入的方式。先前文章提到過批量插入的三種方法,還有以下寫法
insert all
into oracle_table ( id, code ) values( 1 , '1' )
into oracle_table ( id, code ) values( 2 , '2' )
into oracle_table ( id, code ) values( 3 , '3' )
into oracle_table ( id, code ) values( 4 , '4' )
select 1 from dual ;
但是實際使用,會發現此種方法的序列值始終保持不變,是以不能使用。