Oracle user_errors table 包含已删除对象的错误

Oracle user_errors table contains errors for removed objects

我在 oracle 11g 中偶然发现 user_tables:

中遗留的奇怪错误
BIN$R/SOMEUID==[=12=]   TRIGGER 4   5   5   PL/SQL: Statement ignored   ERROR   0
BIN$R/SOMEUID==[=12=]   TRIGGER 3   5   37  PLS-00222: no function with name 'PROCNAME' exists in this scope    ERROR   222

事实是,我们曾在此架构上触发过这些错误,但不久前已将其删除。重新创建具有相同名称且没有错误的触发器,请勿从 user_errors table.

中删除这些行

我在互联网上找不到关于此的任何评论 - 云有人请解释这是怎么发生的,我应该如何清除这个错误?

这类似于 previous question about LOBS

BIN$R/SOMEUID==[=10=] 名称表示对象在 the recycle bin 中。在这种情况下,您似乎已经删除了触发器所针对的 table。触发器定义被保留,但通过 BIN$ name.

标记为针对已删除的对象

您在某些时候还删除了函数 PROCNAME,因此触发器已失效。那可能是在删除 table 之前。

(我实际上无法在 11.2.0.4 中重现此内容,因此这可能是补丁集中发生的更改)。

您可以look in the recycle bin查看对象的原名。

如果您想永久删除触发器定义,则必须 purge the recycle bin,完全删除或只删除删除的 table