plsql-包

package

将功能相近的函数和存储过程组织在一起

便于管理

包内函数可以重名,以提高程序的通用性

减少对象的名称占用问题

一个包内的函数被使用,整个包的定义都会被读入内存中

包内任何一个成员失效,整个包都需要重新编译

包,由包头和包体构成

 

包头

描述函数、存储所使用参数

可以独立存在

 

包体

函数和存储过程具体实现(PLSQL代码块)

不能独立存在

 

建立包头

create or replace package pkgoaec

is

function f1(no number) return number;

function f1(no emp.ename%type) return number;

procedure p1(v_no number);

end pkgoaec;

 

建立包体

create or replace package body pkgoaec

is

function f1

(no in number)

return number

is

v_sal emp.sal%type :=0;

begin

select sal into v_sal from e where empno=no;

return v_sal;

end f1;

function f1

(no in emp.ename%type)

return number

is

v_sal emp.sal%type :=0;

begin

select sal into v_sal from e where ename=no;

return v_sal;

end f1;

procedure p1

(v_no in number)

is

begin

update e set sal=sal+1 where empno=v_no;

commit;

end p1;

end pkgoaec;

 

验证和管理包

select text from user_source where name='PKGOAEC';

desc pkgoaec

 

包内函数的调用

select pkgoaec.f1(7900),pkgoaec.f1('KING') from dual;

 

在代码块中调用自定义的包

declare

v1 emp.sal%type;

v2 emp.sal%type;

begin

v1:=pkgoaec.f1(7900);

v2:=pkgoaec.f1('KING');

pkgoaec.p1(7900);

dbms_output.put_line(v1||' '||v2);

end;

/

 

删除包

drop package pkgoaec;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值