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

Oracle 'CHÈN TẤT CẢ' bỏ qua các bản sao

Trong Oracle, các câu lệnh thành công hoàn toàn hoặc thất bại hoàn toàn (chúng là nguyên tử). Tuy nhiên, bạn có thể thêm các mệnh đề trong một số trường hợp nhất định để ghi các ngoại lệ thay vì nêu ra các lỗi:

Phương pháp thứ hai là hoàn toàn tự động, đây là bản demo (sử dụng 11gR2):

Kiểm tra
SQL> CREATE TABLE test (pk1 NUMBER,
  2                     pk2 NUMBER,
  3                     CONSTRAINT pk_test PRIMARY KEY (pk1, pk2));

Table created.

SQL> /* Statement fails because of duplicate */
SQL> INSERT into test (SELECT 1, 1 FROM dual CONNECT BY LEVEL <= 2);

ERROR at line 1:
ORA-00001: unique constraint (VNZ.PK_TEST) violated

SQL> BEGIN dbms_errlog.create_error_log('TEST'); END;
  2  /

PL/SQL procedure successfully completed.

SQL> /* Statement succeeds and the error will be logged */
SQL> INSERT into test (SELECT 1, 1 FROM dual CONNECT BY LEVEL <= 2)
  2   LOG ERRORS REJECT LIMIT UNLIMITED;

1 row(s) inserted.

SQL> select ORA_ERR_MESG$, pk1, pk2 from err$_test;

ORA_ERR_MESG$                                       PK1 PK2
--------------------------------------------------- --- ---
ORA-00001: unique constraint (VNZ.PK_TEST) violated   1   1

Bạn có thể sử dụng LOG ERROR mệnh đề với INSERT ALL (cảm ơn @Alex Poole ), nhưng bạn phải thêm mệnh đề sau mỗi bảng:

SQL> INSERT ALL
  2   INTO test VALUES (1, 1) LOG ERRORS REJECT LIMIT UNLIMITED
  3   INTO test VALUES (1, 1) LOG ERRORS REJECT LIMIT UNLIMITED
  4  (SELECT * FROM dual);

0 row(s) inserted.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giới thiệu về gói PL / SQL trong cơ sở dữ liệu Oracle

  2. ORA-00913:quá nhiều giá trị trong khi sử dụng trường hợp khi

  3. TNS:người nghe hiện không biết dịch vụ được yêu cầu trong bộ mô tả kết nối

  4. Dấu chân máy khách tối thiểu cần thiết để kết nối C # với cơ sở dữ liệu Oracle là gì?

  5. Tham gia bên trong có giống với tham gia trang bị không?