Oracle Package Specification何时变为INVALID

时间:2016-10-28 00:11:48

标签: plsql oracle11g plsql-package

据我所知,可以在不影响规格的情况下更换和重新编译封装体。包规范声明了过程和函数,而不是定义它们,因此它们不能引用对象,这可以使包规范无效。

我知道包规范可以在使用独立子程序和其他包来定义它的变量时引用对象。在这种情况下,更改引用的对象可能会导致规范失效。

是否有任何其他方式Oracle包规范如何依赖于(引用)对象,并且无论是在引用的对象发生变化还是以其他方式变为INVALID?

1 个答案:

答案 0 :(得分:2)

在规范中,可以定义变量或类型。如果变量是table.column%类型包规范可能受用于定义变量的表上的任何ddl操作的影响。同样的情况是在包头中我们定义游标。

在变量定义引用的表和标题中使用的类型的情况下,我也会小心交换同义词。

下一个场景是特权。如果包的所有者将丢失一些授权(假设由于表重新创建)包规范也可能无效。

我希望我写的内容有道理。