编写pl/sql包并执行包中的过程和函数

来源:互联网 发布:iphone更新后数据丢失 编辑:程序博客网 时间:2024/05/01 07:11
 

包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成。

①使用create package语句来编写包的规范。

--包的规范
create package sp_package is
 procedure update_sal(name varchar2,newSal number);
 function annual_income(name varchar2) return number;
end;

可以看到上面的这个例子是包规范,它声明了一个存储过程和一个函数。

包的规范并没有对过程和函数作具体的实现。

②由于包的规范并没有存储过程和函数的具体实现,所以需要创建包体来实现过程和函数

   使用create package body来创建包体

--创建包体
create package body sp_package is
--存储过程
procedure update_sal(name varchar2,newSal number)
is
begin
 update emp set sal=newSal where ename=name;
end;
--函数
function annual_income(name varchar2)
return number is
annual_salary number;
begin
 select sal*12+nvl(comm,0) into annual_salary from emp
 where ename=name;
 return annual_salary;
end;
end;

注意:在调用包中的过程和函数时,需要带上包的名字在函数名之前,包名和函数名之间用英文实心点。

--调用存储过程

exec sp_package.update_sal('SCOTT',120);