Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle tương đương với MySQL CHÈN BỎ QUA?

Kiểm tra câu lệnh MERGE. Điều này sẽ làm những gì bạn muốn - đó là WHEN NOT MATCHED mệnh đề sẽ thực hiện điều này.

Do Oracle thiếu hỗ trợ mệnh đề VALUES () thực sự, cú pháp cho một bản ghi duy nhất với các giá trị cố định mặc dù khá vụng về:

MERGE INTO your_table yt
USING (
   SELECT 42 as the_pk_value, 
          'some_value' as some_column
   FROM dual
) t on (yt.pk = t.the_pke_value) 
WHEN NOT MATCHED THEN 
   INSERT (pk, the_column)
   VALUES (t.the_pk_value, t.some_column);

Một cách tiếp cận khác (ví dụ:nếu bạn đang tải hàng loạt từ một bảng khác) là sử dụng phương tiện "Ghi nhật ký lỗi" của Oracle. Câu lệnh sẽ giống như sau:

 INSERT INTO your_table (col1, col2, col3)
 SELECT c1, c2, c3
 FROM staging_table
 LOG ERRORS INTO errlog ('some comment') REJECT LIMIT UNLIMITED;

Sau đó, tất cả các hàng có lỗi sẽ có trong bảng errlog . Bạn cần tạo errlog đó bảng (hoặc bất kỳ tên nào bạn chọn) theo cách thủ công trước khi chạy chèn bằng DBMS_ERRLOG.CREATE_ERROR_LOG .

Xem hướng dẫn để biết thêm chi tiết



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lệnh Spool:Không xuất câu lệnh SQL vào tệp

  2. Sử dụng LIKE trong mệnh đề Oracle IN

  3. Làm cách nào để cài đặt Oracle Instant Client trên máy Mac?

  4. Cách sửa đổi kiểu dữ liệu trong Oracle với các hàng hiện có trong bảng

  5. Oracle:Tính chênh lệch múi giờ trong HH:MM:SS giữa 2 ngày