Oracle 通知调用方不存在记录的DML PL/SQL过程

Oracle 通知调用方不存在记录的DML PL/SQL过程,oracle,stored-procedures,jdbc,plsql,Oracle,Stored Procedures,Jdbc,Plsql,我对Oracle PL/SQL的了解有限,但我想知道PL/SQL过程是否可以通知调用方,例如,它试图更新的记录不存在 调用者可以是应用程序代码,如Java/JDBC,但需要以某种方式将此类事件通知它。PL/SQL过程(不是函数)不返回值。是否可以在过程中引发ing异常,让DB管理代码(即JDBC)知道发生了此类事件?有更好的解决方案吗?通知对我来说意味着异步,但我不认为这就是你在这里的意思-调用方正在处理响应,对吗?引发异常是通知调用方发生问题的一种方法 例如,JDBC将获得一个SQLExcep

我对Oracle PL/SQL的了解有限,但我想知道PL/SQL过程是否可以通知调用方,例如,它试图
更新的记录不存在


调用者可以是应用程序代码,如Java/JDBC,但需要以某种方式将此类事件通知它。PL/SQL过程(不是函数)不返回值。
是否可以在过程中引发
ing异常,让DB管理代码(即JDBC)知道发生了此类事件?有更好的解决方案吗?

通知对我来说意味着异步,但我不认为这就是你在这里的意思-调用方正在处理响应,对吗?引发异常是通知调用方发生问题的一种方法

例如,JDBC将获得一个SQLException。您引发的异常(可以是您自己的)将有一个数字和一条消息,可从SQLException获得,如图所示


您可以检查以检查更新是否影响任何行,如果该值为零,则引发异常-表示未更新任何行,因此您尝试更新的记录不存在。

通知对我来说意味着异步,但我不认为这是您在这里的意思-调用方正在处理响应,正确的?引发异常是通知调用方发生问题的一种方法

例如,JDBC将获得一个SQLException。您引发的异常(可以是您自己的)将有一个数字和一条消息,可从SQLException获得,如图所示


您可以检查以检查更新是否影响任何行,如果该值为零,则引发异常-表示未更新任何行,因此您尝试更新的记录不存在。

您可以在过程中使用out参数,其中可以返回已更新行的计数(使用SQL%ROWCOUNT),因此,调用者将知道是否更新了0条记录。

您的过程中可以有一个out参数,您可以在其中返回更新行的计数(使用SQL%ROWCOUNT),因此调用者将知道是否更新了0条记录