Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

(Oracle SQL) Menangkap kesalahan kendala unik

Anda perlu mendefinisikan PL/SQL bersarang Blokir, dan tangani pengecualian di EXCEPTION BLOK sebagai WHEN DUP_VAL_ON_INDEX ...

Seharusnya TIDAK menjadi IF DUP_VAL_ON_INDEX

Declare
violation_of_constraint EXCEPTION;
BEGIN
  BEGIN
  -- (A FEW INSERTS HERE: A, B, C)
  SAVEPOINT X;
  -- (ANOTHER INSERT HERE: D)
  EXCEPTION 
  WHEN DUP_VAL_ON_INDEX THEN
    ROLLBACK TO X;
    COMMIT;
    RAISE violation_of_constraint;
  END;
EXCEPTION
WHEN violation_of_constraint THEN
DBMS_OUTPUT.PUT_LINE('Value already exists');
COMMIT;
END;
/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-08177:tidak dapat membuat serial akses untuk transaksi ini

  2. Menggunakan variabel ikat dengan klausa SELECT INTO dinamis di PL/SQL

  3. Seberapa besar Oracle XMLType saat disimpan sebagai BINARY XML?

  4. Cara mengkonfigurasi ulang Oracle 10g xe di Linux

  5. Solusi untuk ORA-00997:penggunaan tipe data PANJANG secara ilegal