sea*_*alz 2 sql oracle plsql package oracle10g
场景:我对包不了解,除了它们包含的函数和程序都包含在一个漂亮的小礼物中.所以今天我得到了这个包(相当大)的说明"在这里,这是破碎的,请修理它".
我终于清理了一切,这让我想到了我的问题.
在包的整体视图中,将要导出.
1)除了所有东西的集合外,包装是否还有其他用途?
2)要部署此包,您是否需要将部署空间设置为已包含该包调用的所有视图/物化视图/表?如果不是,我假设包将无法执行.
3)您是否可以编写程序包以跳过无法执行而无法执行的函数和过程?
4)当把在一个地方成功编译的包裹带到另一个地方时,我应该注意哪些其他的东西?
1)除了所有东西的集合外,包装是否还有其他用途?
除此之外,它还减少了在特定过程被更改时重新编译依赖于特定过程的其他过程的需要.
考虑procedure XYZ(a in number)许多其他程序调用的(普通的,不是包的).如果更改此过程,则需要重新编译所有其他过程,这可能会降低系统的可用性.
另一方面,如果过程在a中声明并在a中package定义,package body并且过程仅在主体中更改,则(几乎)不会进行重新编译.
2)要部署此包,您是否需要将部署空间设置为已包含该包调用的所有视图/物化视图/表?如果不是,我假设包将无法执行.
不,您可以在package body没有相关视图或表的情况下安装.然后包装体的状态将是,INVALID并且不能使用包装体的功能.
3)您是否可以编写程序包以跳过无法执行而无法执行的函数和过程?
不确定,究竟是什么问题.如果包体的状态是INVALID,则不能执行任何代码,因此不会发生"轰炸".
但是,如果由于逻辑原因(例如,除以零)发生轰炸,则可以始终求助于exception when others then构造.
4)当把在一个地方成功编译的包裹带到另一个地方时,我应该注意哪些其他的东西?
再说一次,不确定你的意思.你能详细说明一个地方是什么吗?架构?一个实例?一个装置,一个公司......?