使用apex错误处理函数的
apex error handling function可以获得更好的约束冲突消息。这将截获错误消息,并允许您使用它做任何您想做的事情,例如查找特定的约束名称和输出一个更合适(干净)的消息,如下所示:
另外,您可以用如下的pl/sql代码替换默认的网格处理:
开始
案例:apex$row_状态
当“c”时
插入EMP(EMPNO、ENAME、DEPTNO)
值(:empno,:ename,:deptno)
将rowid返回到:rowid;
当“u”时
更新EMP
设置名称=:名称,
DEPTNO=:DEPTNO
其中rowid=:rowid;
“D”什么时候?
删除EMP
其中rowid=:rowid;
结束案例;
结束;
您可以调用自己的API,而不是简单的DML语句,例如
当“d”时,然后
emp_pkg.delete_emp(:rowid);
然后,它们可以在执行DML之前实现您自己的业务规则和错误消息。直到需要使用错误处理函数从异常消息中删除“ora-20001:”和类似的内容为止。
.这将截获错误消息,并允许您使用它做任何您想做的事情,例如查找特定的约束名称和输出一个更合适(干净)的消息,如下所示:

另外,您可以用如下的pl/sql代码替换默认的网格处理:
begin
case :APEX$ROW_STATUS
when 'C' then
insert into emp ( empno, ename, deptno )
values ( :EMPNO, :ENAME, :DEPTNO )
returning rowid into :ROWID;
when 'U' then
update emp
set ename = :ENAME,
deptno = :DEPTNO
where rowid = :ROWID;
when 'D' then
delete emp
where rowid = :ROWID;
end case;
end;
您可以调用自己的API,而不是简单的DML语句。
when 'D' then
emp_pkg.delete_emp (:ROWID);
然后,它们可以在执行DML之前实现您自己的业务规则和错误消息。直到需要错误处理函数才能从异常消息中删除“ora-20001:”等。