我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈
优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集👈👈
PL-SQL编程—包
包
-
创建包
-
包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成
-
可以使用create package命令来创建包
-
实例
-- 创建一个包sp_package create or replace package sp_package is -- 声明该包有一个过程update_sal procedure update_sal(name varchar2,newsal number); -- 声明该包有一个函数annual_income function annual_income(name varchar2) return number; end;
-
-
此时只是有包规范,并没有包体。也就是该包里面声明的过程和函数都没有具体的执行代码
-
包规范:只包含了过程和函数的说明,但是没有过程和函数的实现代码
-
包体:用于实现包规范中的过程和函数
-
创建包体可以使用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+nvl(comm,0))*12 into annual_salary from emp where ename=name; return annual_salary; end; end;
-
-
调用包里面的过程和函数
- 调用包的过程或函数时,再过程和函数名前需要带包名,如果要访问其他方案的包,则在包名前加方案名
- 如:
call sp_package.update_sal('SCOTT',1500); 或 exec sp_package.update_sal('SCOTT',1500);
-
-
特别说明:
- 包是PL/SQL中非常重要的部分,我们在使用过程分页时,将会体验到包的威力!