我想在我的网站上显示警告(我抱歉,但此类型无法删除)消息,当我收到错误时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。
任何建议将不胜感激! :)
答案 0 :(得分: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.
答案 1 :(得分:0)
您可以使用PRAGMA EXCEPTION_INIT声明将自己的异常类型与内部Oracle错误号相关联。文档:http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/errors.htm#BABGIIBI