六)程序包
1.基本概念
程序包简称包,用于将逻辑相关的PL/SQL块或元素(变量、常量、自定义数据类型、异常、过程、函数、游标)等组织在一起,作为一个完整的单元存储在数据库中,用名称来标示程序包。
程序包分两个独立的部分:说明部分和包体部分,这两部分独立的存储在数据字典中。包的说明部分的更改需要重新编译调用的应用程序,包体部分的更改不需要重新编译调用的应用程序。
2.创建包
1)创建一个包说明部分。
CREATE PACKAG<包名>
IS
变量、常量及数据类型定义;
游标定义头部;
函数、过程的定义和参数列表以及返回类型;
END<包名>;
CREATE PACKAGE my_package
IS
man_num NUMBER; --定义了两个全局变量
woman_num NUMBER;
CURSOR teacher_cur; --定义了一个游标
CREATE FUNCTION F_count_num(in_sex in TEACHERS.SEX%TYPE)
RETURN NUMBER; --定义了一个函数
CREATE PROCEDURE P_count_num
(in_sex in TEACHERS.SEX%TYPE,out_num out NUMBER); --定义了一个过程
END my package;
2)对应的包体
CREATE PACKAGE BODY <包名>
AS
游标、函数、过程的具体定义;
END<包名>;
CREATE PACKAGE BODY my_package
AS
CURSOR teacher_cur IS --游标具体定义
SELECT TID , TNAME , TITLE , SEX
FROM TEACHERS
WHERE TID<117;
FUNCTION F_count_num --函数具体定义
(in_Sex in TEACHERS.SEX%TYPE)
RETURN NUMBER
AS
out_num NUMBER;
BEGIN
IF in_sex='m' THEN
SELECT count(SEX)INTO out_num
FROM TEACHERS
WHERE SEX='m';
ELSE
SELECT count(SEX)INTO out_num
FROM TEACHERS
WHERE SEX='f';
END IF;
RETURN(out_num);
END F_count_num;
PROCEDURE P_count_num --过程具体定义
(in_sex in TEACHERS.SEX%TYPE, out_num out NUMBER)
AS
BEGIN
IF in_sex='m' THEN
SELECT count(SEX) INTO out_num
FROM TEACHERS
WHERE SEX='m';
ELSE
SELECT count(SEX) INTO out_num
FROM TEACHERS
WHERE SEX='f';
END IF;
END P_count_num;
END my_package; --包体定义结束
3.调用包
包名.变量名(常量名)
包名.游标名
包名.函数名(过程名)
SQL>VARIABLE man_num NUMBER
SQL>EXECUTE man_num:=my_package.F_count_num('M')
4.删除包
DROP PACKAGE my_package
分享到:
相关推荐
oracle数据库 PL/SQL教程,适合于初学者
《Oracle PL/SQL程序设计(第5版)(套装上下册)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何...
Oracle PL/SQL实例精解 student模式 数据库建立代码 包括数据库的建立、索引等。样本数据的插入。
本书包含了真实世界的例子,涵盖了PL / SQL的所有高级功能。反过来,每个主要的认证主题都在一个...他的技术重点集中在Oracle数据库架构,Oracle云平台,数据库内存,数据库整合,多租户,Exadata,大数据和Hadoop。
PL/SQL是Oracle对标准数据库语言的扩展,Oracle公司已经将PL/SQL整合到Oracle 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本教程将以循速渐进的方式讲述PL/SQL基础语法,结构和组件、以及...
oracle数据库 sql 和pl/sql实例教程
oracle pl/sql实例精讲student数据库模式
Oracle数据库SQL和PL/SQL实例教程 西安电子科技大学出版社
pl/sql数据库学习笔记,包含一些基础知识,和案例代码
pl/sql编写的院校招生系统(通过包、存储过程、触发器、视图等完成的),可供学习oracle数据库pl/sql编程使用
精通Oracle PL/SQL》旨在教授读者写出健壮、高效且易于维护的 PL/SQL代码。全书涵盖了 PL/SQL提供的大量功能,包括高效数据处理、...《精通Oracle PL/SQL》结构清晰,示例丰富,实践性强,适用于 DBA和数据库开发人员。
NULL 博文链接:https://hankzhouzhm.iteye.com/blog/1765955
《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...
《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...
《oracle pl/sql程序设计(第5版)》基于oracle数据库11g,从pl/sql编程、pl/sql程序结构、pl/sql程序数据、pl/sql中的sql、pl/sql应用构建、高级pl/sql主题6个方面详细系统地讨论了pl/sql以及如何有效地使用它。...
Oracle PL/SQL程序设计(第5版)(上下册),《Oracle PL/SQL程序设计(第5版)》基于 Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、 PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细...
Oracle数据库开发工具PL/SQL 7.03安装包,包含序列号
《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...
如何用PL/SQL将EXCEL数据导入到ORACLE数据库中,截图教大家。
PL/SQL不安装Oracle连接数据库 1、下载instantclient-basic-win32-11.2.0.1.0此为压缩包,解压就行(路径如:D:\oracle\instantclient\instantclient).解压的路径自行调整 2、新建tnsnames.ora文件,路径如(D:\...