oracle包package的使用

Posted 咸咸海风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle包package的使用相关的知识,希望对你有一定的参考价值。

创建包

包头

CREATE OR REPLACE PACKAGE test_pkg IS

PROCEDURE update_sal(e_name VARCHAR2,newsal NUMBER);     --  定义一个函数

FUNCTION ann_income(e_name VARCHAR2) RETURN NUMBER;    -- 定义一个存储过程

END;

 

包体:

CREATE OR REPLACE PACKAGE BODY test_pkg IS

PROCEDURE update_sal(e_name VARCHAR2,newsal NUMBER)

IS

BEGIN

UPDATE emp1 SET sal=newsal WHERE ename=e_name;

END;

 

FUNCTION ann_income(e_name VARCHAR2)

RETURN NUMBER IS

annsal NUMBER;

BEGIN

SELECT sal*12+NVL(comm,0) INTO annsal FROM emp1

WHERE ename=e_name;

RETURN annsal;

END;

END;

 

注意:文中黄色区域,包头和包体的命名要一模一样

 

3、调用包

 

内部调用:即在指的包里调用,直接调,不用写:包名.;

外部调用:包名.函数,或者包名.存过。

以上是关于oracle包package的使用的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中的package 怎么用

Oracle包编译,调用或调试Package时卡死问题

oracle - sqldeveloper 手动执行包 package的方法

oracle创建包后执行报错:object omgmig.test_package is invalid.

Oracle 将变量与包绑定

如何调用ORACLE程序包中的存储过程