PLSQL中的包

包的概述
将相关对象存储到一起的一种结构形式;
相关对象:变量、游标、异常、存储过程、函数
包头:包含包相关信息的声明,不包含有任何子程序代码;
包体:与包头分离,包头编译通过后才有可能编译通过,含有程序代码;

eg:(包头)
create package pack1
is
procedure procadd(x number,y number);
procedure procsub(x number,y number);
end pack1;
(包体)
create package body pack1
is
procedure procsub(x number,y number)
is
begin
dbms_output.put_line(x+y);
end;

procedure procsub(x number,y number)
is
begin
dbms_output.put_line(x-y);
end;
end pack1;

(包的使用):
begin
pack1.procadd(3,2);
pack1.procsub(3,2);
end;

包头和包体
包头定义语法:
Create[Or replace] PACKAGE package_name
AS|IS
variable declare;
cursor declare;
procedure declare;
function declare;
End [package_name];
eg:
create package calc
is
function funcadd(x number,y number);
function funcsub(x number,y number);
end;

包体的定义语法:
a.包含函数和过程的实现代码;
b.包头成功通过编译后,才能进行编译;
c.可以包含私有函数和过程;
d.允许函数和过程的重载;

Create [or replace] PACKAGE BODY package_name
AS|IS
global variable;
procedure;
function;
.....
begin
initialize statement;
end [package_name];

eg:
create package body calc
is
function funcadd(x number,y number) return number
is
result number:=0;
begin
result:=x+y;
return result;
end

function funcsub(x number,y number) return number
is
reuslt number:=0;
begin
result:=x-y;
return result;
end;
end;

包的使用需知
相关数据字典
USER_OBJECTS:用户拥有的全部的数据对象;
USER_SOURCE:用户存储在数据库中的程序和包的源代码;
依赖关系
验证方法

posted @ 2017-10-25 16:19  惠山脚下小学僧  阅读(166)  评论(0)    收藏  举报