设为首页 收藏本站
查看: 1151|回复: 0

[经验分享] oracle package包头和package body包体例子

[复制链接]

尚未签到

发表于 2018-9-6 07:32:51 | 显示全部楼层 |阅读模式
  程序包
  1作用是为了实程序模块化
  2程序包里面可以包含存储过程,函数,变量,游标等PL/SQL程序
  3程序包类似java的jar包,存储过程,函数,变量,游标等相当jar包提供的方法
  4调用程序包里面的存储过程,函数等元素时,oracle会把程序包调入内存,下次是使用,直接从内存读取。
  那么这些项目属于私有项目,只能在包体中使用.
  一 包的组成
  包头(package):包头部分申明包内数据类型,常量,变量,游标,子程序和异常错误处理,这些元素为包的公有元素。
  包主体(package body):包主体则是包定义部分的具体实现,它负责为包头中所声明子程序提供具体的实现,在包主体中还可以声明包的私有元素。
  包头和包主体分开编译,并作为两个分开的对象分别存放在数据库字典中。
  二  包的语法规则
  包头的语法如下:
  create or replace package 包名
  As | IS
  procedure 过程名();
  Function 函数名() return 数据类型;
  变量定义;
  异常定义;
  光标定义;
  ...........
  ...........
  End 包名;
  包体创建的语法:
  create or replace Package Body 包名
  As | IS
  Procedure 过程定义;
  Procedure 过程定义;
  Function 函数定义;
  Function 函数定义;
  .........;
  end 包名;
  包的开发步骤
  与开发存储过程类似,包的开发需要几个步骤:
  1.   将每个存储过程调式正确;
  2.   用文本编辑软件将各个存储过程和函数集成在一起;
  3.   按照包的定义要求将集成的文本的前面加上包定义;
  4.   按照包的定义要求将集成的文本的前面加上包主体;
  5.   使用SQLPLUS或开发工具进行调式。
  加密实用程序
  ORACLE 提供了一个实用工具来加密或者包装用户的PL/SQL,它会将用户的PL/SQL改变为只有ORACLE能够解释的代码版本.
  WRAP 实用工具位于$ORACLE_HOME/BIN.
  格式为:
  WRAP INAME= [ONAME=]
  wrap iname=e:\sample.txt
  注意:在加密前,请将PL/SQL程序先保存一份,以备后用。
  可以使用 DROP PACKAGE 命令对不需要的包进行删除,语法如下:
  DROP PACKAGE [BODY] [user.]package_name;
  包与过程、函数一样,也是存储在数据库中的,可以随时查看其源码。若有需要,在创建包时可以随时查看更详细的编译错误。不需要的包也可以删除。
  同样,为了避免调用的失败,在更新表的结构后,一定要记得重新编译依赖于它的程序包。在更新了包说明或包体后,也应该重新编译包说明与包体。语法如下:
  ALTER PACKAGE package_name COMPILE [PACKAGE|BODY|SPECIFICATION];
  也可以通过以下数据字典视图查看包的相关。
  DBA_SOURCE, USER_SOURCE, USER_ERRORS,DBA-OBJECTS
  如,我们可以用:select text from user_source wherename='DEMO_PKG1';来查看我们创建的包的源码。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-563753-1-1.html 上篇帖子: Oracle 生成用户及权限复制 下篇帖子: Oracle 11g physical dataguard之快照备用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表