在.net中使用Oracle批量复制,我正在尝试将记录批量插入表中。如果该表包含主键序列列,那么在批量插入时如何在主键列中插入值。
如何使用OracleBulkCopy批量上传时设置序列值。
没有性能问题,我们需要这样做,触发不是正确的方法。请让我知道可能性。
谢谢A
答案 0 :(得分:0)
如果您确信不想使用BEFORE INSERT
触发器来使用从适当序列中获取的值来填充主键列,则一种选择是使用所获取的数字来填充列值的集合从序列开始,然后将列数组绑定到批量INSERT上,就像对其他列所做的一样。
如果您拥有允许使用的Oracle版本(IIRC为12或更高版本),则还可以将PK列上的默认值设置为YOUR_SEQUENCE.NEXTVAL
。
答案 1 :(得分:0)
通过此链接http://www.dba-oracle.com/t_how_to_add_sequence_to_oracle_table_column.htm
在Oracle 12c及更高版本中,您可以将序列直接与表相关联: 例如,我们直接在create table语句中将序列与表相关联。
create sequence my_test_id_seq increment by 1;
create table
my_test
(
id number default my_test_id_seq.nextval,
name varchar(10)
);
insert into
my_test
(name)
values
('no sequence required!');