Oracle——包

包用于在逻辑上组合过程和函数,它由包规范和包体两个部分组成。
(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——包,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。