oracle存储过程学习---包的概念
转自:http://www.iteye.com/topic/1111793
一、包的概念
类似于一个容器,能打包相应的Pl/SQL变量、常量、函数、过程、复合数据类型等元素到这个容器内。用来限制
对这些内容的访问权限。
二、包的构成。
包通常由两部分组成,分别为包头和包体 。
包头:里面通常写上述元素的声明,相当于应用程序的接口。
包体:里面通常写上述元素的实现,相当于应用程序的具体实现。
包头和包体分别作为数据库对象被保存在数据库内。
三、包的特性
1、包本身不能被调用,被参数化,只能调用包中的具体元素。
2、当第一次调用一个包中的元素时,整个包被载入内存,下一次再调用包中的相应元素时,省略了磁盘操作。
3、用户只能访问包头,而不能访问包体。
4、包头可以在没有包体的情况下单独存在,而包体不可以。
四、公有元素、私有元素和局部元素。
公有元素:只要在包头中声明的元素,即为公有元素,在包的外部都可以访问得到。
私有元素:在包体中出现而包头中没有出现的元素,即为私有元素,在包的外部访问不到。
局部元素:在包体的某一个过程或者函数中声明的元素,即为局部元素,只能在包体的这个过程和函数中使用。
五、如何编辑一个包。
1、new Sql-window
2、new program-window ->Package
3、new command-window
六、创建包的语法
1、创建包头:
Create Or Replace Package 包名 is|As
公有元素的声明;
pl/sql块
2、创建包体:
Create Or Replace Package Body 包名 is|As
私有元素的声明
公有元素的实现;
pl/sql块
七、包的调用
和以前调用方式的区别是:在调用的元素名前面加上 '包名.'
八、包的特性:
1、无体包:只有包头没有包体的包。通常只写常量的声明。
2、包的重载特性:在同一个包里,函数或过程名相同,参数列表不同。
3、包的前向声明:
九、删除包
删除包头:
Drop Package 包名;--包头和包体都被删除
删除包体
Drop Package Body 包名; --只删除包体。
当修改包头时,包头和包体需要全部重新编译,如果只修改包体,包头不需要重新编译。
十、动态SQL:在运行期间才能明确下来操作的是哪个数据库对象.
静态SQL:在编译之前就已经明确操作的是哪个数据库对象。
十一、本地动态SQL:
Execute Immediate '动态SQL' [Into 变量列表] [Using 参数列表];
变量列表:用来做Select语句赋值的。、
参数列表:用来填充SQL中参数的。
oracle存储过程学习---包的概念的更多相关文章
- Oracle RAC学习笔记:基本概念及入门
Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章] oracle 10g real applica ...
- ORACLE存储过程学习
存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE ...
- Oracle 存储过程学习
转自:http://blog.chinaunix.net/uid-20495387-id-174394.html http://www.cnblogs.com/rootq/articles/11000 ...
- Oracle存储过程学习使用
存储过程创建语法: create or replace procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型(值范围); 变量2 类型(值 ...
- Oracle存储过程学习备忘
之前的项目使用存储过程很少,但在实际的项目中,存储过程的使用是必不可少的. 存储过程是一组为了完成特定功能的SQL 语句 集,经编译后存储在数据库中:存储过程创建后,一次编译在程序中可以多次调用,对安 ...
- Oracle 存储过程学习笔记
1.存储过程简单实例 CREATE OR REPLACE PROCEDURE 存储过程名称 (参数in,参数out) AS -- 变量声明,每个声明用分号结束.可以在声明的同时初始化 name ); ...
- oracle 存储过程(包)的写法和执行
--in 代表输入参数,out 代表输出参数create or replace procedure myproc(id in int, v_message out varchar2) is--定义临时 ...
- Oracle存储过程学习笔记
SQL是一种语言! SQL是一种语言! SQL是一种语言! 个人理解:存储过程就相当于Java中的方法;声明变量区域就相当于java中的声明局部变量一样,只是放到一个指定区域定义了 一.先看一部分基础 ...
- Oracle存储过程、包、方法使用总结
/** *@author:zhengwei *@date:2017-04-28 *@desc:存储过程用法总结 */ CREATE OR REPLACE PROCEDURE MYPROCEDURE(P ...
随机推荐
- HDU 3265 Posters ——(线段树+扫描线)
第一次做扫描线,然后使我对线段树的理解发生了动摇= =..这个pushup写的有点神奇.代码如下: #include <stdio.h> #include <algorithm> ...
- Centos6.5安装与配置Tomcat-8的方法
环境要求: 系统: [root@Wulaoer ~]# cat /proc/version Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bs ...
- apt
今天单元测试看到巨长字符串被加了很多引号,想起以前可以用跳脱符断行,试了不行,google说java7可以,我操. https://github.com/benelog/multiline/wiki/ ...
- Linux服务器软件安装备忘
1.Centos安装Mysql --安装 yum install mysql-server 卸载 yum -e mysql-server --设置为开机启动 chkconfig mysqld on - ...
- Java ZIP压缩和解压缩文件并兼容linux
JDK中自带的ZipOutputStream在压缩文件时,如果文件名中有中文,则压缩后的 zip文件打开时发现中文文件名变成乱码. 解决的方法是使用apache-ant-zip.jar包(见附件)中的 ...
- Android网络开发之Volley--Volley基本用法StringRequest(一)
1.StringRequest用法 主要分为3步: (1).实例化一个RequestQueue对象 (2).设置StringRequest对象参数,并将StringRequest对象加入Request ...
- 如何打开USB OTG功能:
一.检查HW原理图,确认是否支持OTG功能(vbus是否供上电,IDDIG pin连接是否正确)二.若HW确认支持OTG功能,则按照以下方法分别打开USB OTG功能及实现挂载: 如何打开USB OT ...
- ural1613 For Fans of Statistics
For Fans of Statistics Time limit: 1.0 secondMemory limit: 64 MB Have you ever thought about how man ...
- CG之基本光照模型计算公式
在一个基本模型里,一个物体表面的颜色是由放射(emissive).环境反射(ambient).漫反射(diffuse)和镜面反射(specular)等光照作用的总和.每种光照作用取决于表面材质的性质( ...
- ios中操作技巧
1.配置字段快捷键: @property(nonatimic,copy) NSString *<#param#>; 2.NSNumber 转NSString 最快简单方式: NSNumbe ...