包:

包是PLSQL中多个单元的逻辑组合,他将过程组合在一个包内容,以供用户调用,使用后,不需要程序员频繁的修改程序,可以保持程序的逻辑完整性,对包中的过程重新定义或者编译,以便修改部分功能,从而更好的实现业务功能。

好处:

在程序设计时,程序员可以通过完成某种业务逻辑的包来简化编程。

包被加载到SGA,便不需要重新加载,减少调用的加载时间。

包可以增加安全性,通过创建私有过程或者函数来实现业务逻辑和数据隐藏。

包的创建:

PACKAGE package_name

IS

[变量或者类型说明]

[游标声明]

[主体对象声明(如函数过程等)]

END packeage_name

PACKAGE BODY package_name

IS

[变量或者游标声明]

[游标相关select语句声明]

[主体对象body声明]

BEGIN

可执行代码

EXCEPTION

[异常处理]

END package_name

调用方式

①  PACKAGE_NAME.element_name (包外)

②  直接调用  (包内)

如果有同名过程需要不同的参数加以区分。同java等语言相同,函数重载*

包的私有过程和函数 (按私有变量理解)

在包的声明中没有定义在包体中创建的函数或者过程时,要外部调用包体中的函数或者过程会报错,此时包体中的函数和过程称为私有的,只能在包体内部调用

当在包声明中定义函数或者过程,但是未在包体中定义函数或者过程则会报错。

实现了信息安全和丰富了包的业务逻辑,实现信息隐藏

过程:

CREATE OR REPLACE PRODUCE PRODUCE_NAME

IS

声明区

BEGIN

执行区

EXCEPTION

异常处理区

END;

过程中的IN 和 OUT

In是输入参数,out是输出参数

函数:

CREATE OR REPLACE FUNCTION function_name (f  float)

RETURN float

IS

BEGIN

return f*f

END function_name;

函数定义,函数名,参数(in out)也可以没有参数,但是函数必须要有返回值,需要在函数定义中明确指定返回的数据类型。

最新文章

  1. spring data jpa分页
  2. Linux下查找文件:which、whereis、locate、find 命令的区别
  3. Java-数组练习1
  4. 查看Android应用包名package和入口activity名称
  5. webservice 的wsdl文件生成客户端java类
  6. Scala学习——数组/映射/元组
  7. [STL]单词转换
  8. 汇编debug 截图
  9. 设置N秒后执行某个方法或函数
  10. controller.pp 各组件的安装顺序
  11. ASP.NET Web Service应用发布到IIs怎么做
  12. 线程问题、异常处理、自定义URL
  13. Jdk1.6 JUC源码解析(13)-LinkedBlockingQueue
  14. 第一个jdbc
  15. 回收 PV - 每天5分钟玩转 Docker 容器技术(152)
  16. C#零基础入门-2-Visual Studio (VS)程序初始化及各组成部分
  17. 二十、Flyweight 享元模式
  18. Oracle 把查询的多个字段赋值给多个变量
  19. spark shuffle内在原理说明
  20. (字符串 键盘转换)Convert QWERTY to Dvorak -- zoj -- 5526

热门文章

  1. 【题解】洛谷P1541 [NOIP2010TG] 乌龟棋(类似背包的DP)
  2. java文件系统中的的NIO与IO
  3. JAVA正则表达式判断元音
  4. 系统优化怎么做-SQL优化
  5. hashMap 和 linkedHashMap 的区别和联系
  6. JavaScript Event Loop和微任务、宏任务
  7. chromium之ScopedNSAutoreleasePool浅析
  8. window下pip install Scrapy报错解决方案
  9. Filebeat使用模块收集日志
  10. 一台ECS服务器,部署多(两)应用,且应用配置不同域名