1、Oracle Package的作用:
可以简化应用设计、提高应用性能、实现信息隐藏、子程序重载
2、ORACLE中的function 、package、package bodies、procedure的区别和相同:
function有返回值,有参数;procedure无返回值,有参数;package、package body是同时存在的,就像.h和.cpp文件,如果要外部调用的,就在package里声明一下,包内调用的,只要在body里写就行了。package可包括function,procedure
3、在sqlserver中,直接写个存储过程就可以调用。但是在oracle中,我看好多资料上说要想调用存储过程必须把存储过程放进包中才能调用?是否是这样?
不是,过程也可以单独写,单独调用
4、packages 与 package bodies有什么区别?
packages中只有各个方法的定义,bodies中涉及具体的实现
5、我在存储过程就是procedures中写了个存储过程,再写个包名包含进去吗?还是可以直接在包中写包名:再把想写的存储过程直接写进包中就行啦呢?
不用
6、写进包,要写进哪个?packages 还是 package bodies
这两个是一体的,必须同时存在
package body和package都需要手工去写。
需要先创建package(也就是包的定义),再创建body。增加包中的过程或者修改包中过程的输入参数个数等也是要先改package再改body。