程序包
1作用是为了实程序模块化
2程序包里面可以包含存储过程,函数,变量,游标等PL/SQL程序
3程序包类似java的jar包,存储过程,函数,变量,游标等相当jar包提供的方法
4调用程序包里面的存储过程,函数等元素时,oracle会把程序包调入内存,下次是使用,直接从内存读取。
5程序包组成
1)包规范:列出程序包可用的存储过程,函数,游标等元素条目(不含实际代码),这些元素条目属于公有项目,可以供所有数据库用户访问
2)包体:包含元素的实际代码,同时也可以在包体中创建包规范中没有提到的项目,
那么这些项目属于私有项目,只能在包体中使用.
创建包规范
语法
create 【or replace】package package_name
{is | as }
package_specification;
end package_name;
package_name:包名
package_specification:列出用户可以使用的公有项目(存储过程,函数,类型和对象)
举例
create or replace package tool_package
as
function sum_function(a in number default 0,b in number default 0) return number;
procedure update_student2(no in varchar2,name in varchar2) ;
end tool_package;
创建包体
create 【or replace】package body package_name
{is | as }
package_body;
end package_name;
package_name:创建包规范时指定的包名
举例
create or replace package body tool_package
as
/* 存储过程update_student2*/
procedure update_student2(no in varchar2,name in varchar2)
as
begin
update student2 set sname=name where sno=no;
end update_student2;
/* 函数sum_function*/
function sum_function(a in number default 0,b in number default 0)
return number
as
ssum number(10):=0;
begin
ssum:=(a+b);
return ssum;
end sum_function ;
end tool_package;
程序包的调用
删除程序包
语法
drop package package_name
举例
drop package tool_package;