我想知道是否有任何方法在重複鍵錯誤後繼續插入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提示有問題和已知的錯誤,因此它不應該在生產中使用,這就是爲什麼我正在尋找一個類似的解決方案。 –