设为首页 加入收藏

TOP

【PLSQL】package包的使用
2015-11-21 01:35:41 来源: 作者: 【 】 浏览:0
Tags:PLSQL package 包的 使用

包package

package是一个可以将相关对象存储在一起的PLSQL结构,Package包含两个分量的组成部分:specification包声明,body(声明中的程序实现,包体)。每个部分都单独的存储在数据字典中。包声明时一个操作的接口,对应用来说是可见的。包体是黑盒,对应用来说隐藏了实现的细节

包的组成包括:

过程,函数,变量,游标(定义一条sql语句),类型(定义符合类型),常量,异常

包的优点:

---方便对应过程和函数的组织,解决命名冲突

---方便对过程和函数的组织:不改变包的声明定义,改变包的包体;

---限制过程和函数的依赖性

---在包体为实现时候,其他程序可以钓鱼保重的对象,对自己程序进行编译;

---方便对过程和函数的安全性管理:包的访问授权只需一次性授权,区分公共过程和私有过程;

---改善性能:在包首次被调用的时候,一个整体全部放入内存,减少多次调用的磁盘IO;

?

?

?

3.8.1 匿名块

--过程和函数只能在本匿名块中调用,例如;

declare

v_n1 number :=1;

function fun1 (p_in number ) return number ls

begin

return p_in

end;

procedure proc1 ls

begin

dbms_output.put_lin(fun1(v_n1));

end;

begin

proc1;

end;

3.8.2 package的语法

包头声明:

create or replace package pkg_name {ls | as }

公共变量(varibale)的定义;

公共类型(type)的定义;

公共游标(cursor)的定义;

函数说明;

过程说明;

end;

--package body声明的语法;

create or replace package body pkg_name

ls | as

--调用一次执行一次

函数实现

--调用一次执行一次

过程实现

begin

--初始化代码

--首次调用包中任意对象执行一次

end;

3.8.3 包Package的使用

包的声明

create or replace packeage pkg1

ls

--公共类型

type t_rec is record

(m1 number,m2 varchar2(10));

--公共变量

v_rec t_rec ;

--公共过程

procedure proc1;

--公共函数

function fun1(p_in number) return number;

end

包体的实现

create or replace packeage pkg1

ls

--实现过程

procedure proc1

ls

begin

dbms_outpurt.put_lin(v_rec.m1);

end;

--实现函数

function fun1(p_in number) return number

ls

begin

return p_in

end;

--初始化代码

begin

v_rec.m1 :=100;

end;

调用package

begin

pkg1.v_rec.m1 :=pkg1.fun1(10);

pkg1.proc1;

end;

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQLite入门 下一篇sql在查询结果中增加标记字段

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: