创建包
--------------
/*
用于逻辑组合相关的过程和函数,他由包规范和包体两部分组成,
包规范用语定义公用的常量,变量,过程和函数,
包体则用于实现包规范中的过程和函数
*/
--创建包
CREATE PACKAGE emp_pkg IS
--包中用于存储函数和过程
PROCEDURE update_sal(pname VARCHAR2,newsal NUMBER);
FUNCTION annual_income(pname VARCHAR2) RETURN NUMBER;
END;
/
-----------------------
创建包体
------------------
/*
创建包的包体
*/
CREATE PACKAGE BODY emp_pkg IS
--存储过程
PROCEDURE update_sal(pname VARCHAR2,newsal NUMBER)
IS
BEGIN
UPDATE emp SET sal= newsal
WHERE lower(ename)= lower(pname);
END;
--存储函数
FUNCTION annual_income(pname VARCHAR2) RETURN NUMBER
IS
--用于返回这个变量
annual_salary NUMBER(7,2);
BEGIN
SELECT sal*12+nvl(comm,0) INTO annual_salary
--lower 是用于比较String相等。
FROM emp WHERE lower(ename)= lower(pname);
--返回值
RETURN annual_salary;
END;
END;
/
From 阜和教育