Oracle
 sql >> база данни >  >> RDS >> Oracle

(Oracle SQL) Прихващане на уникална грешка в ограничението

Трябва да дефинирате вложен PL/SQL Блокиране и обработка на изключението в EXCEPTION БЛОКИРАНЕ като WHEN DUP_VAL_ON_INDEX ...

Трябва да НЕ бъде 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. oracle изберете от множество таблици

  2. C# DateTime се променя в друг формат

  3. SQL Server версия на ADD_MONTHS() на Oracle

  4. Как да тествам дали колона е равна на empty_clob() в Oracle?

  5. как да направя функция за връщане на тип ред от таблица в pl/sql?