A package is always either valid or invalid.
A package is valid if none of its source code or objects it references have been dropped, replaced, or altered since the package specification was last recompiled.
a package is invalid if its source code or any object that it references has been dropped, altered, or replaced since the package specification was last recompiled.
When a package becomes invalid, Oracle will also make invalid any object that references the package.