如何删除通过oracle数据库发送的通知?

时间:2018-07-18 11:59:30

标签: sql oracle oracle-sqldeveloper

我有一个将触发器放置在oracle数据库表中的应用程序,这样当发生诸如插入或更新之类的更改时,我会在程序中收到通知。 该应用程序假设在关闭后会删除这些触发器,但是会出现错误,有时它们会保留在数据库中,我不知道如何删除它们,因为无法删除的触发器它不知道存在。

在sqldeveloper中,它看起来像这样: https://imgur.com/a/5lDhPSb

如何删除这些? 谢谢。

更新: 早上问题就解决了,桌子空了 但是运行我的应用几次后,它又充满了孤儿变更通知,并且程序随机运行。有时我没有收到任何通知,有时我连续收到同一事件的多个通知。

有人真的知道如何使用sqldeveloper或简单程序从数据库中删除所有更改通知吗?

2 个答案:

答案 0 :(得分:1)

首先,很难读取附带的图片,我想知道删除相关触发器的原因。

但是,如果您确实需要此功能,则可以禁用触发器。从 user_triggers 数据字典视图中查询触发器的状态

SQL> SELECT 'Trigger Status is '||t.status||' now'  
       FROM user_triggers t 
      WHERE t.trigger_name='<your_trigger_name>';

其中 t.status 返回 DISABLED ENABLED

,如果要禁用,请从您的应用程序中调用以下命令:

SQL> ALTER TRIGGER <your_trigger_name> DISABLE;

,您可以随时通过以下方式启用触发器:

SQL> ALTER TRIGGER <your_trigger_name> ENABLE;

答案 1 :(得分:0)

您使用更改通知的不是触发器。详细了解更改通知:26 Database Change Notification