Plsql 在触发器中引发错误之前提交更新

Plsql 在触发器中引发错误之前提交更新,plsql,triggers,oracle10g,Plsql,Triggers,Oracle10g,我正在编写一个更新后触发器来记录特定列的用户名和更新时间。 我需要提交更新,然后向用户显示一条消息,建议他们做其他事情。 我无法使用dbms_output.put_行,因为应用程序对用户隐藏了这些消息(不可能更改应用程序,因为它是第三方应用程序,许可问题会阻止任何更改)。我曾尝试使用raise_application_error来显示消息,但由于它引发了一个错误,因此无法提交更新 有人知道解决这个问题的方法吗?在不更改应用程序的情况下,无法实时向用户显示消息。如果您持有所有用户的电子邮件地址,我

我正在编写一个更新后触发器来记录特定列的用户名和更新时间。 我需要提交更新,然后向用户显示一条消息,建议他们做其他事情。 我无法使用dbms_output.put_行,因为应用程序对用户隐藏了这些消息(不可能更改应用程序,因为它是第三方应用程序,许可问题会阻止任何更改)。我曾尝试使用raise_application_error来显示消息,但由于它引发了一个错误,因此无法提交更新


有人知道解决这个问题的方法吗?

在不更改应用程序的情况下,无法实时向用户显示消息。如果您持有所有用户的电子邮件地址,我想触发器会向他们发送一封电子邮件,告诉他们需要做什么?

如果不更改应用程序,就无法实时向用户显示消息。如果你持有所有用户的电子邮件地址,我想触发器可能会向他们发送一封电子邮件,告诉他们需要做什么?

如果没有其他选择,这是一个棘手的解决办法。
在触发器中,您可以首先提交作业(dbms_job.submit)并在作业中进行更新。然后提出一个错误。

如果没有其他选择,那么存在一个令人讨厌的解决方法。
在触发器中,您可以首先提交作业(dbms_job.submit)并在作业中进行更新。然后提出一个错误。

我认为这将是最好的解决方案。我认为这将是最好的解决方案。谢谢你的建议,你是对的,这是一个相当糟糕的解决方法。我认为给用户发电子邮件是一种更简洁的处理方式。如果事务回滚,作业将不会执行。(除非你在自主事务中提交工作)谢谢你的建议,你是对的,这是一个相当糟糕的解决方法。我认为给用户发电子邮件是一种更简洁的处理方式。如果事务回滚,作业将不会执行。(除非您在自治事务中提交作业提交)