Oracle——包

时间:2014-04-29 16:53:52   收藏:0   阅读:632

包用于在逻辑上组合过程和函数,它由包规范和包体两个部分组成。
(1)首先用CREATE PACKAGE创建包规范,只包含过程和函数的说明,但没有过程和函数的实现代码

--创建一个包名称为sp_package
--声明该包含有一个过程update_sal
--声明该包含有一个函数annual_income
CREATE OR REPLACE PACKAGE sp_package IS
PROCEDURE update_sal(spname VARCHAR2, sal NUMBER);
FUNCTION  annual_income(spNAme VARCHAR2) RETURN NUMBER;
END;

(2)用CREATE PACKAGE BODY命令创建包体,即实现函数和过程的代码
CREATE OR REPLACE PACKAGE BODY sp_package IS
  PROCEDURE update_sal(spname VARCHAR2, newsal NUMBER) IS
    BEGIN
      UPDATE emp SET sal = newsal WHERE ename=spname;
    END;
    
  FUNCTION annual_income(spName VARCHAR2)
  RETURN NUMBER IS
  yearSal number(7,2);
  BEGIN
    SELECT (sal+NVL(comm,0))*12 INTO yearSal FROM emp WHERE ename=spNAme;
    RETURN yearSal;
  END;
END;
(3)调用包中的过程和函数
CALL sp_package.annual_income(‘SMITH‘);

CALL sp_package.annual_income(‘SMITH‘) into:income;

Oracle——包,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!