我想知道是否有任何方法在重复键错误后继续插入select。意思是:我想忽视例外并继续插入下一条记录。 我很熟悉ignore_row_on_dupkey_index,但据我所知,提示不应该在生产环境中使用。忽略插入到选择重复键错误(pl/sql)
几件事: 1.查询将数百万条记录插入空表中。 2.我宁愿有一个很好的解决方案,对性能影响很小。
谢谢, 亚历克斯
使用ignore_row_on_dupkey_index的代码示例:
CREATE TABLE customers
(customer_id number(10) NOT NULL,
customer_name varchar2(50) NOT NULL,
city varchar2(50),
CONSTRAINT customers_pk PRIMARY KEY (customer_id)
);
CREATE TABLE customers_2
(customer_id number(10) NOT NULL,
customer_name varchar2(50) NOT NULL,
city varchar2(50)
);
insert into customers_2 values(1,'A','TLV');
insert into customers_2 values(2,'B','TLV');
insert into customers_2 values(2,'C','TLV');
insert into customers_2 values(3,'C','TLV');
SELECT * FROM customers_2
insert /*+ ignore_row_on_dupkey_index(customers, customers_pk) */
into customers select * from customers_2
select * from Customers;
它在proc中工作。我不能得到什么问题 –
根据ORACLE提示有问题和已知的错误,因此它不应该在生产中使用,这就是为什么我正在寻找一个类似的解决方案。 –