包
包是将一群相关联的PL/SQL类型、项目、和子程序等有计划的组织起来封装在一起。包通常包括两个部分:规范和主题。有时包的主体不是必要的。
包的规范也叫包头,是我们和应用程序的接口部分,通常包含:类型、记录、变量、常量、异常、游标、子程序等的声明。
即:任何可以在块中声明的语句都可以在包中使用,这些声明对应用程序可见,并可调用。
1.包的创建:
包的创建分为两部分:包的规范的创建和包体的创建。语法:
1.创建包规范:
create [ or replace ]package 包名 is/as 声明语句 end[包名]
2.创建包主体:
create [ or replace ]package body 包体名 is/as 声明语句 end[包体名]
在包规范中的声明都是全局的,在包体中的声明是局部的。除编译指令外在包规范中子程序的声明一定要在别的项目中声明完之后再声明。
2.包的调用:
要调用包规范中声明的类型、项目、子程序,可采用点标记:包名.调用东西的名。注意事项:
1.可从数据库触发器、存储子程序、其他的3GL应用程序和不同的Oracle工具中调用包的内容
2.不能直接或间接的调用远方的包中的变量。同样在包的内部不能调用主机的变量。
3.第一次调用包时,包将进行初始化。将包从硬盘上调用奥内存中来,将其放入到系统全局工作区的共享缓冲区中,包的运行状态(变量、游标等)则被放入用户全局去的会话存储区中。
4.包的运行状态与数据库会话期具有相同的生存期,直到当前会话期结束,包的运行状态才会被释放。