2

I in oracle 11g I stumbled upon strange errors leaved in user_tables:

BIN$R/SOMEUID==$0   TRIGGER 4   5   5   PL/SQL: Statement ignored   ERROR   0
BIN$R/SOMEUID==$0   TRIGGER 3   5   37  PLS-00222: no function with name 'PROCNAME' exists in this scope    ERROR   222

The fact is, we have had some trigger on this schema with these errors, but it was removed some time ago. Recreating trigger with the same name and without errors, do not remove these rows from user_errors table.

I can not find any remarks of this on internet - cloud somebody please explain how this occured and how should I clean this errors?

T.Z.
  • 2,092
  • 1
  • 24
  • 39

1 Answers1

3

This is similar to a previous question about LOBS.

The BIN$R/SOMEUID==$0 name means the object is in the recycle bin. In this case it appears you have dropped the table the trigger was against. The trigger definition is preserved, but marked as against a dropped object, via the BIN$ name.

You have also, at some point, dropped the function PROCNAME, so the trigger has become invalid. That may have been before the table was dropped.

(I can't actually reproduce this in 11.2.0.4, so this might be something that changed in a patchset).

You can look in the recycle bin to see the object's original name.

If you want to permanently remove the trigger defintition you will have to purge the recycle bin, either completely or just for the dropped table

Community
  • 1
  • 1
Alex Poole
  • 183,384
  • 11
  • 179
  • 318