I have had invalid public synonyms in my database. Some of them references to ordinary schema objects and others to sys schema objects.
I compiled all these public synonyms by the following command:
alter public synonym mysynonym_name compile;
My supervisor suddenly told me that I should not have compiled SYS schema synonyms. I tried to invalidate them by the following way:
exec dbms_utility.invalidate(444849);
Where 444849 is the synonym object ID. But got the following error:
ORA-24237: object id argument passed to DBMS_UTILITY.INVALIDATE is not legal
ORA-06512: at "SYS.DBMS_UTILITY", line 1053
ORA-06512: at line 2
Why?
Can compilation of these synonyms cause some problem?
Thank you a lot, I am waiting for your recommendations and answers. Please share your knowledge with us.
Best Answer
You don't have the create privileges on the object being invalidated. But generally it is a very bad idea to invalidate objects in the sys schema. This will also invalidate all objects that reference them, so you might end up with lots of invalidated objects.