Oracle 10.0 package shows INVALID status in reference on oracle 11g on import with IMPDP

impdporacle-11g-r2

I have imported dump of oracle 10 version with tables, procedures and packages to oracle 11g version.

While am not facing any issues with tables and procedures, certain body of packages compiles with error.

On checking the same packages in old oracle version, i ve noticed that the reference status of package body is VALID. But in 11g version, it is INVALID

Also there is a mismatch in dependencies of package from old version and new version.

Cud someone shed light on what am i missing?

I wana compile the procedure without any error in 11g version!

Best Answer

Most of the times some object privileges are missing from the owner[s] of the imported objects.

the error PLS-00302: component 'XXX' must be declared

can be explained by missing synonyms and/or missing privileges on that object. Verify in the source database that the owner - or sometimes public - had privileges on the object 'XXX' and make sure this is granted in the target database too.

impdp does not give grants on objects that it did not import in the same session. (the not created by me syndrome) Most likely sys objects are playing a role here.