oracle怎么使用包,oracle包(package)入门——应用实例
包的作用 : 包可以将任何出现在块声明的语句 ( 过程 , 函数 , 游标 , 游标 , 类型 , 变量 ) 放于包中 , 相当于一个容器 . 将声明语句放入包中的好处是 : 用户可以从其他 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)入门——应用实例相关推荐
- Oracle包和包体以及与非包体定义函数、过程的区别
1.Oracle中的包和包体 Oracle中的包和包体与java中的接口和类才关系特别类似,我们就根据对比学习一下包和包体吧! 2.oracle包和包体与自定义函数,过程区别 2.1 如果直接crea ...
- Oracle 存储过程,函数和包。
1. 存储过程和函数 1.1 创建和删除存储过程 创建存储过程,需要有CREATE PROCEDURE 或 CREATE ANY PROCEDURE的系统权限. 基本语法如下: ...
- oracle强大的包,ORACLE 程序包
程序包由PL/SQL程序元素(变量,类型)和匿名PL/SQL(游标),命名PL/SQL 块(存储过程和函数)组成. 程序包可以被整体加载到内存中,这样可以大大加快程序包中任何一个组成部分的访问速度. ...
- oracle 依赖包自动安装包,ORACLE 安装提示缺少依赖包
安装ORALCE 在做检验时提示缺少依赖包,其实是因为系统是64位系统而这些包都是32位的, This is a prerequisite condition to test whether the ...
- Oracle的sql开发之包技术实战
前言: 包(package)的主要作用是用于逻辑组合相关的pl/sql类型,比如记录类型或者集合类型,pl/sql游标或者游标声明以及pl/sql子程序,还可以包含任何可以在块的声明区中定义的变量.一 ...
- oracle存储过程导出查询结果,ORACLE如何实现函数、包、存储过程的导入和导出
建 议可以用常规的检查,检查一下:数据字典信息/exp 导出结构检查 1.检查 SELECT * FROM ALL_SOURCE t WHERE T.OWNER = '要查询用户' AND t.TYP ...
- Oracle包和包体
一.什么要使用包? 在一个大型项目中,可能有很多模块,而每个模块又有自己的过程.函数等.而这些过程.函数默认是放在一起的(如在PL/SQL中,过程默认都是放在一起 的,即Procedures中),这些 ...
- oracle 包和包体禁用,Oracle包和包体以及与非包体定义函数、过程的区别
Oracle包和包体以及与非包体定义函数.过程的区别. 1.Oracle中的包和包体 Oracle中的包和包体与java中的接口和类才关系特别类似,我们就根据对比学习一下包和包体吧! 2.oracle ...
- 28 Oracle深度学习笔记——ORACLE自带DBMS函数包
28.Oracle深度学习笔记--ORACLE自带DBMS函数包 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50830889 ...
- 28.Oracle深度学习笔记——ORACLE自带DBMS函数包
28.Oracle深度学习笔记--ORACLE自带DBMS函数包 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50830889 ...
最新文章
- 用Excel画五线谱!
- 吴恩达深度学习笔记2.2 logistic回归
- tensorflow之transpose的使用
- 用c语言求解n阶线性矩阵方程组,用C语言求解N阶线性矩阵方程Axb简单解法.docx
- sqlalchemy 基操,勿6
- 全部关于测试–第2部分
- C++学习—— mutable和 extern
- js时间格式化 YYYY/MM/DD HH:MM:SSS
- Answers To The Questions from GiGabyte
- 沪深股票历史数据下载,股票历史交易数据下载
- 整理并记录电压比较器
- 游戏充值平台系统PHP,游戏支付平台源码+游戏充值平台+第3方支付平台源码+游戏网关支付接口...
- iOS 整理iOS9适配中出现的坑
- 遗传算法占用计算机空间,遗传算法
- 63岁老太太不远千里来传销 被玩坏的IPFS矿机游戏
- 计算机粘贴功能不能用了,电脑不能粘贴怎么回事_电脑不能粘贴了怎么解决
- 在c# winform 的 monthCalendar 里粗体凸显有数据的日期
- delphi xe10 android x86,盒子 - 完整版DELPHI XE10.1移动开发框架 绝对可以使用
- electron初学之随机点名
- ppt模板有哪些网站
热门文章
- 【笔试/面试】—— 不使用大于、小于、if 语句,实现 max 宏
- Python 数据结构与算法——拓扑排序
- php服务器端注释,php标识和注释
- scanf 在uefi中调用_BIOS、UEFI、Boot Loader都是些什么
- net安装 0x80096004 无法验证证书的签名_如何购买iOS签名证书
- 32岁了 学python 来的及吗-32岁的程序员去了国企工作, 晒出年薪, 网友: 我没看错吧...
- python怎么读取csv文件-python怎么读取csv文件
- 0基础学python要多久-自学Python要学多久可以学会?
- python从入门到精通需要多久-学习Python从入门到精通需要多长时间
- 为什么说吉利博越定义了智能SUV