Khi tôi chạy cái này, tôi gặp lỗi "thiếu từ khóa INTO".
Bởi vì BỎ QUA không phải là một từ khóa trong Oracle. Đó là cú pháp MySQL.
Những gì bạn có thể làm là sử dụng MERGE.
merge into table1 t1
using (select 'value1' as value1 ,value2
from table2
where table2.type = 'ok' ) t2
on ( t1.value1 = t2.value1)
when not matched then
insert values (t2.value1, t2.value2)
/
Từ Oracle 10g, chúng ta có thể sử dụng hợp nhất mà không cần xử lý cả hai nhánh. Trong 9i, chúng tôi phải sử dụng một nhánh MATCHED "giả".
Trong các phiên bản cổ hơn, các tùy chọn duy nhất là:
- kiểm tra sự tồn tại của hàng trước khi đưa ra CHÈN (hoặc trong một truy vấn phụ);
- sử dụng PL / SQL để thực thi INSERT và xử lý mọi lỗi DUP_VAL_ON_INDEX kết quả.