违反完整性约束 - 找到子记录异常

时间:2015-04-30 22:29:09

标签: php oracle exception error-handling

我想在我的网站上显示警告(我抱歉,但此类型无法删除)消息,当我收到错误时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。

任何建议将不胜感激! :)

2 个答案:

答案 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