包package

包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成。
(1). 我们可以使用create package命令来创建包。
包的规范只包含了过程和函数的说明,但是没有过程和函数的实现代码。包体用于实现包规范中的过程和函数。
--创建一个包sp_package
--声明该包有一个过程update_sal
--声明该包有一个函数annual_income
create package sp_package is  
  procedure update_sal(name varchar2, newsal number);   
  function annual_income(name varchar2) return number;   
end; 

(2). 建立包体可以使用create package body命令
--给包sp_package实现包体 
create or replace 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;   

(3). 如何调用包的过程或是函数
      当调用包的过程或是函数时,在过程和函数前需要带有包名,如果要访问其它方案的包,还需要在包名前加方案名。
      call sp_package.update_sal('SCOTT', 1500);

你可能感兴趣的:(package)