我有一个将触发器放置在oracle数据库表中的应用程序,这样当发生诸如插入或更新之类的更改时,我会在程序中收到通知。 该应用程序假设在关闭后会删除这些触发器,但是会出现错误,有时它们会保留在数据库中,我不知道如何删除它们,因为无法删除的触发器它不知道存在。
在sqldeveloper中,它看起来像这样: https://imgur.com/a/5lDhPSb
如何删除这些? 谢谢。
更新: 早上问题就解决了,桌子空了 但是运行我的应用几次后,它又充满了孤儿变更通知,并且程序随机运行。有时我没有收到任何通知,有时我连续收到同一事件的多个通知。
有人真的知道如何使用sqldeveloper或简单程序从数据库中删除所有更改通知吗?
答案 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