Я хочу показать предупреждение (извините, но этот тип не может быть удален) сообщение на моем веб-сайте, когда я получаю сообщение об ошибке 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 не объявлен.
Мы ценим любые предложения ! :)
Вы можете связать свой собственный тип исключения с внутренним номером ошибки Oracle, используя объявление PRAGMA EXCEPTION_INIT. Документация: http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/errors.htm#BABGIIBI
Вы можете использовать, когда другие,
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.