在效率方面,使用独立表类型与我们在包规范或主体中创建的表类型相比,有什么优势吗?
- 独立表类型可以在多个地方使用。包表类型可以在包内使用。有些人可能会争辩说,我们可以创建一个通用的包规范,并使用包规范中的表类型。
- 为独立表类型维护的附加db对象
如果你的意思是这样的例如
type some_type is table of number;
那么将它存储在一个单独的包中可以帮助您将它与其他逻辑相关的对象保持在一起。并且授予对这些对象的访问权限会更容易,因为您不需要指定每个对象,而只需授予对包的访问权限。
保持包的私有,就像你在1中提到的。也可以作为决定使用包
的原因。有些操作需要将类型定义为全局类型,例如
select ...
into ....
from TABLE(<your table type variable>);
不能使用本地定义的类型(至少在早期的Oracle版本中是这样的)