在PL/SQL包中声明全局异常

Mek*_*oll 0 sql oracle plsql exception package

我在包中有一些过程/函数,-2291当违反FOREIGN KEY约束时捕获异常.

我从不同的过程中删除了异常,并在包体中声明它,如下所示:

e_ouder_niet_gevonden EXCEPTION;
PRAGMA EXCEPTION_INIT(e_ouder_niet_gevonden,-2291);
Run Code Online (Sandbox Code Playgroud)

现在当我使用包中的一个过程时没有问题.但是,我想要实现的是任何过程/函数都可以使用该异常.我该怎么做呢?

Mek*_*oll 5

解决方案:您需要输入包规范,而不是将异常放在包体中.如果您想在包外部的过程中使用异常,可以将其放在EXCEPTION块中:

WHEN packagename.exception_name THEN
Run Code Online (Sandbox Code Playgroud)

这没有问题.