包的作用 : 包可以将任何出现在块声明的语句 ( 过程 , 函数 , 游标 , 游标 , 类型 , 变量 ) 放于包中 , 相当于一个容器 . 将声明语句放入包中的好处是 : 用户可以从其他 PL/SQL 块中对其进行引用 , 因此包为 PL/SQL 提供了全程变量 .

打包的PL/SQL程序和没有打包的有很大的差异,包数据在用户的整个会话期间都一直存在,当用户获得包的执行授权时,就等于获得包规范中的所有程序和数据结构的权限。但不能只对包中的某一个函数或过程进行授权。包可以重载过程和函数,在包内可以用同一个名字声明多个程序,在运行时根据参数的数目和数据类型调用正确的程序。

分为两部分 : 包头和包体创建包头CREATE [OR REPLACE] PACKAGE package_name

{AS|IS}

public_variable_declarations |

public_type_declarations |

public_exception_declarations |

public_cursor_declarations |

function_declarations |

procedure_specifications

END [package_name]

创建包主体使用CREATE PACKAGE BODY语句:

CREATE [OR REPLACE] PACKAGE BODY package_name

{AS|IS}

private_variable_declarations |

private_type_declarations |

private_exception_declarations |

private_cursor_declarations |

function_declarations |

procedure_specifications

END [package_name]

以下是完是一个比较简单的示例:

> create or replace package pg_myfirst

2  is

3  procedure sp_emp_insert;

4  function f_getename(i_empno number) return varchar2;

5  end pg_myfirst;

6  /

程序包已创建。

> create or replace package body pg_myfirst

2  is

3  procedure sp_emp_insert

4  is

5  begin

6  insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)

7  values(7384,'WangYi','SALESMAN',7698,to_date('2011-07-29','yyyy-mm-dd'),125

0.00,1400.00,30);

8  commit;

9  end;

10  function f_getename(i_empno number)

11  return varchar2

12  is

13  v_ename varchar2(200);

14  begin

15  select ename into v_ename from emp where empno=i_empno;

16  return v_ename;

17  end;

18  end;

19  /

程序包体已创建。

> call pg_myfirst.sp_emp_insert();

调用完成。

> select pg_myfirst.f_getename(7384) from dual;

PG_MYFIRST.F_GETENAME(7384)

--------------------------------------------------------------------------------

--------------------

WangYi

oracle怎么使用包,oracle包(package)入门——应用实例相关推荐

  1. Oracle包和包体以及与非包体定义函数、过程的区别

    1.Oracle中的包和包体 Oracle中的包和包体与java中的接口和类才关系特别类似,我们就根据对比学习一下包和包体吧! 2.oracle包和包体与自定义函数,过程区别 2.1 如果直接crea ...

  2. Oracle 存储过程,函数和包。

    1. 存储过程和函数 1.1 创建和删除存储过程             创建存储过程,需要有CREATE PROCEDURE 或 CREATE ANY PROCEDURE的系统权限. 基本语法如下: ...

  3. oracle强大的包,ORACLE 程序包

    程序包由PL/SQL程序元素(变量,类型)和匿名PL/SQL(游标),命名PL/SQL 块(存储过程和函数)组成. 程序包可以被整体加载到内存中,这样可以大大加快程序包中任何一个组成部分的访问速度. ...

  4. oracle 依赖包自动安装包,ORACLE 安装提示缺少依赖包

    安装ORALCE 在做检验时提示缺少依赖包,其实是因为系统是64位系统而这些包都是32位的, This is a prerequisite condition to test whether the ...

  5. Oracle的sql开发之包技术实战

    前言: 包(package)的主要作用是用于逻辑组合相关的pl/sql类型,比如记录类型或者集合类型,pl/sql游标或者游标声明以及pl/sql子程序,还可以包含任何可以在块的声明区中定义的变量.一 ...

  6. oracle存储过程导出查询结果,ORACLE如何实现函数、包、存储过程的导入和导出

    建 议可以用常规的检查,检查一下:数据字典信息/exp 导出结构检查 1.检查 SELECT * FROM ALL_SOURCE t WHERE T.OWNER = '要查询用户' AND t.TYP ...

  7. Oracle包和包体

    一.什么要使用包? 在一个大型项目中,可能有很多模块,而每个模块又有自己的过程.函数等.而这些过程.函数默认是放在一起的(如在PL/SQL中,过程默认都是放在一起 的,即Procedures中),这些 ...

  8. oracle 包和包体禁用,Oracle包和包体以及与非包体定义函数、过程的区别

    Oracle包和包体以及与非包体定义函数.过程的区别. 1.Oracle中的包和包体 Oracle中的包和包体与java中的接口和类才关系特别类似,我们就根据对比学习一下包和包体吧! 2.oracle ...

  9. 28 Oracle深度学习笔记——ORACLE自带DBMS函数包

    28.Oracle深度学习笔记--ORACLE自带DBMS函数包 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50830889 ...

  10. 28.Oracle深度学习笔记——ORACLE自带DBMS函数包

    28.Oracle深度学习笔记--ORACLE自带DBMS函数包 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50830889 ...

最新文章

  1. 用Excel画五线谱!
  2. 吴恩达深度学习笔记2.2 logistic回归
  3. tensorflow之transpose的使用
  4. 用c语言求解n阶线性矩阵方程组,用C语言求解N阶线性矩阵方程Axb简单解法.docx
  5. sqlalchemy 基操,勿6
  6. 全部关于测试–第2部分
  7. C++学习—— mutable和 extern
  8. js时间格式化 YYYY/MM/DD HH:MM:SSS
  9. Answers To The Questions from GiGabyte
  10. 沪深股票历史数据下载,股票历史交易数据下载
  11. 整理并记录电压比较器
  12. 游戏充值平台系统PHP,游戏支付平台源码+游戏充值平台+第3方支付平台源码+游戏网关支付接口...
  13. iOS 整理iOS9适配中出现的坑
  14. 遗传算法占用计算机空间,遗传算法
  15. 63岁老太太不远千里来传销 被玩坏的IPFS矿机游戏
  16. 计算机粘贴功能不能用了,电脑不能粘贴怎么回事_电脑不能粘贴了怎么解决
  17. 在c# winform 的 monthCalendar 里粗体凸显有数据的日期
  18. delphi xe10 android x86,盒子 - 完整版DELPHI XE10.1移动开发框架  绝对可以使用
  19. electron初学之随机点名
  20. ppt模板有哪些网站

热门文章

  1. 【笔试/面试】—— 不使用大于、小于、if 语句,实现 max 宏
  2. Python 数据结构与算法——拓扑排序
  3. php服务器端注释,php标识和注释
  4. scanf 在uefi中调用_BIOS、UEFI、Boot Loader都是些什么
  5. net安装 0x80096004 无法验证证书的签名_如何购买iOS签名证书
  6. 32岁了 学python 来的及吗-32岁的程序员去了国企工作, 晒出年薪, 网友: 我没看错吧...
  7. python怎么读取csv文件-python怎么读取csv文件
  8. 0基础学python要多久-自学Python要学多久可以学会?
  9. python从入门到精通需要多久-学习Python从入门到精通需要多长时间
  10. 为什么说吉利博越定义了智能SUV