A specification may define a variable or type. If the variable is the package specification table.column% type, it can be affected by any ddl operation in the table used to define the variable. The same situation occurs when we define a cursor in the packet header.
I would also be careful with replacing synonyms both in the case of the table referenced by the variable definition and the type used in the header.
The next scenario is privileges. If the package owner loses some grants (say, by re-creating the table), the package specification may also be invalid.
I hope that what I write makes sense.
source
share