- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
06 包创建与应用
1-* Copyright ? Oracle Corporation, 2001. All rights reserved. 1 Copyright ? Oracle Corporation, 2001. All rights reserved. 包的创建与应用 包 包是一组相关过程、函数、变量、常量与游标等PL/SQL程序设计元素的组合,它具有面向对象程序设计语言的特点,是对这些PL/SQL 程序设计元素的封装。包类似于C++与JAVA语言中的类,其中变量相当于类中的成员变量,过程与函数相当于类方法。把相关的模块归类成为包,可使开发人员利用面向对象的方法进行存储过程的开发,从而提高系统性能。 与类相同,包中的程序元素也分为公用元素与私用元素两种,这两种元素的区别是他们允许访问的程序范围不同,即它们的作用域不同。公用元素不仅可以被包中的函数、过程所调用,也可以被包外的PL/SQL程序访问,而私有元素只能被包内的函数与过程序所访问。 在PL/SQL程序设计中,使用包不仅可以使程序设计模块化,对外隐藏包内所使用的信息(通过使用私用变量),而写可以提高程序的执行效率。因为,当程序首次调用包内函数或过程时,ORACLE将整个包调入内存,当再次访问包内元素时,ORACLE直接从内存中读取,而不需要进行磁盘I/O操作,从而使程序执行效率得到提高 包 一个包由两个分开的部分组成: 包定义(PACKAGE):包定义部分声明包内数据类型、变量、常量、游标、子程序与异常错误处理等元素,这些元素为包的公有元素。 包主体(PACKAGE BODY):包主体则是包定义部分的具体实现,它定义了包定义部分所声明的游标与子程序,在包主体中还可以声明包的私有元素。 包定义与包主体分开编译,并作为两部分分开的对象存放在数据库字典中。 包的定义 包定义的语法如下: CREATE [OR REPLACE] PACKAGE package_name {IS | AS} [公有数据类型定义[公有数据类型定义]…] [公有游标声明[公有游标声明]…] [公有变量、常量声明[公有变量、常量声明]…] [公有子程序声明[公有子程序声明]…] END [package_name]; 包体的定义 包体定义的语法如下: CREATE [OR REPLACE] PACKAGE BODY package_name {IS | AS} [私有数据类型定义[私有数据类型定义]…] [私有变量、常量声明[私有变量、常量声明]…] [私有子程序声明与定义[私有子程序声明与定义]…] [公有子程序定义[公有子程序定义]…] BEGIN PL/SQL 语句 END [package_name]; 其中:在包主体定义公有程序时,它们必须与包定义中所声明子程序的格式完全一致 包的开发步骤 与开发存储过程类似,包的开发需要几个步骤 : 将每个存储过程调式正确 用文本编辑软件将各个存储过程与函数集成在一起 按照包的定义要求将集成的文本的前面加上包定义 按照包的定义要求将集成的文本的前面加上包主体 使用开发工具进行调式 创建包应用举例 例:CREATE OR REPLACE PACKAGE demo_pack IS DeptRec dept%ROWTYPE; FUNCTION add_dept( dept_no NUMBER, dept_name VARCHAR2, location VARCHAR2) RETURN NUMBER; FUNCTION remove_dept(dept_no NUMBER) RETURN NUMBER; PROCEDURE query_dept(dept_no IN NUMBER); END demo_pack; 创建包应用举例 例:CREATE OR REPLACE PACKAGE BODY demo_pack IS FUNCTION add_dept (dept_no NUMBER, dept_name VARCHAR2, location VARCHAR2) RETURN NUMBER IS empno_remaining EXCEPTION; PRAGMA EXCEPTION_INIT(empno_remaining, -1); /* -1 是违反唯一约束条件的错误代码 */ 创建包应用举例 例:BEGIN INSERT INTO dept VALUES(dept_no, dept_name, loc
您可能关注的文档
- 【全程学习方略】2013版高中化学 5.3 选用适宜化妆品 鲁科版选修1.ppt
- 《第二十三章 第一节 生态系统概述》1.ppt
- 【学案导学设计】2014-2015学年高中化学同步:3.4.2 酸碱中与滴定(鲁科版选修4).ppt
- 【医学PPT大全】 性传播疾病检查 - 副本.ppt
- 【江苏会计基础】第九章财务会计报告.ppt
- 《道路车辆外廓尺寸、轴荷与质量限值》 设计标准与《超限运输车辆行驶公路管理规定》执法标准统一影响.ppt
- 一、会计基本理论与方法.doc
- 一3温度与气温陈建秋,PPT,.ppt
- 【语文】2010届高考二轮专题复习四十四(下):鉴赏诗歌语言练习.ppt
- 【全程复习方略】2016届高考数学(文科人教A版)大一轮复习:2.7 函数图象.ppt
- 全国2012年01月自学考试00159《高级财务会计》历年真题与参考解答.doc
- 全国2011年10月高等教育自学考试高级财务会计试卷与解答.doc
- 全国2011年1月经济法概论(财经类)真题与解答.doc
- 全国2010年7月中级财务会计试卷与解答.doc
- 全国2011年4月高等教育自学考试电子商务案例分析-试卷分析.ppt
- 全国2012年10月自学考试00159《高级财务会计》历年真题与参考解答.doc
- 09 上半年 上午试题和答案.doc
- 全国2012年10月高等教育自学考试财务报表分析试卷与解答.docx
- 全国2014年4月高等教育自学考试高级财务会计试卷.doc
- 全国2012年10月高等教育自学考试高级财务会计试卷与解答(试卷+解答).doc
最近下载
- 物业安全生产培训PPT课件.pptx VIP
- 1.2掌握广西壮族服饰元素及特点(课件)《广西壮族服饰文化与创意设计》.pptx VIP
- 交流电气装置的接地规范.pdf VIP
- 创伤(救治)理论知识考核试题及答案.pdf VIP
- 47_DLT 584-2017《3kV~110kV电网继电保护装置运行整定规程》.pdf VIP
- 基于FAP启动子的表达载体及心肌纤维化药物筛选方法.pdf VIP
- 建设工程项目管理规范材料.doc VIP
- 中国设施农业的减碳增汇效应分析——基于1828个县域面板数据的实证研究.pdf VIP
- 小学体育与健康沪教版(五四学制)(2024)二年级全一册《第四课 运动场上我最棒》教学设计 .pdf
- GB50270-2010 输送设备安装工程施工及验收规范.docx VIP
文档评论(0)