gpt4 book ai didi

sql - PL/SQL 包级异常处理

转载 作者:行者123 更新时间:2023-12-01 13:36:57 25 4
gpt4 key购买 nike

我有一个相当简单的问题:是否可以在包级别进行异常处理?如果是,如何实现?

我的包中有程序和函数,如果是 NO_DATA_FOUND异常(exception)我想在我的所有程序和函数中做同样的事情。

所以我的问题是:我可以写吗

WHEN NO_DATA_FOUND THEN

只需一次,对 NO_DATA_FOUND 使用相同的行我所有的过程/函数中的异常,还是我必须在每个过程/函数中编写该异常处理程序。

最佳答案

不,您不能在包中的所有过程/函数中全局处理异常。

The exception handler documentation说:

An exception handler processes a raised exception. Exception handlers appear in the exception-handling parts of anonymous blocks, subprograms, triggers, and packages.



这听起来像你可以;但是那里的“包”引用是指 create package body statement的初始化部分:

enter image description here

但是该部分“初始化变量并执行任何其他一次性设置步骤”,并且在第一次调用包中的函数或过程时每个 session 运行一次。它的异常处理程序不做任何其他事情。

如果您真的想要类似的行为,那么您可以将其放入它自己的(可能是私有(private)的)过程中,并从每个过程/函数的异常处理程序中调用它。例如,如果您尝试记录错误,这可能会节省一些打字时间,但可能会掩盖真正发生的事情。有特定的异常处理可能会更简单更好,即使这会导致一些重复。

关于sql - PL/SQL 包级异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37282621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com