нарушение целостности - исключение для дочерней записи

1

Я хочу показать предупреждение (извините, но этот тип не может быть удален) сообщение на моем веб-сайте, когда я получаю сообщение об ошибке ORA-02292: нарушение целостности нарушено - найдена детская запись. Как я могу создать это исключение? Из php или из базы данных и как именно?

Я попробовал что-то вроде этого

begin
  -- Test statements here   
        DELETE FROM PETTYPE
        WHERE PET_TYPE_CODE = 40;
        COMMIT; 
EXCEPTION 
       WHEN CHILD_RECORD_FOUND  
       THEN Dbms_Output.put_line('ERROR'); 


end; 

Но это не работает, потому что child_record_found не объявлен.

Мы ценим любые предложения ! :)

Теги:
exception
error-handling

2 ответа

0

Вы можете связать свой собственный тип исключения с внутренним номером ошибки Oracle, используя объявление PRAGMA EXCEPTION_INIT. Документация: http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/errors.htm#BABGIIBI

0

Вы можете использовать, когда другие,

create table ref1 ( a int primary key);
create table ref2 (a int references ref1(a));

SQL> select * from ref1;

         A
----------
         1
         2

SQL> select * from ref2;

         A
----------
         1
         2

set serveroutput on

SQL>    declare
  2     begin
  3    -- Test statements here
  4          DELETE FROM REF1
  5          WHERE a = 1;
  6          COMMIT;
  7  EXCEPTION
  8         WHEN others then
  9          Dbms_Output.put_line('Im sorry but this type cannot be deleted');
 10
 11
 12  end;
 13  /
Im sorry but this type cannot be deleted

PL/SQL procedure successfully completed.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню