定义序列名称为 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 ;
但是实际使用,会发现此种方法的序列值始终保持不变,因此不能使用。