4

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

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

是否有任何其他方式,Oracle 包规范如何依赖(引用)对象并在引用对象更改或其他方式时变为无效?

4

1 回答 1

2

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

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

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

我希望我写的东西有意义。

于 2016-10-28T07:15:39.673 回答