【PLSQL】package包的使用

【PLSQL】package包的使用

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

************************************************************************

  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************

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;

************************************************************************

  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117927.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 解析Java中文乱码的处理方法

    解析Java中文乱码的处理方法【引自程序犹如人生的博客】为什么说乱码是中国程序员无法避免的话题呢?这个首先要从编码机制上说起,大家都是中文和英文的编码格式不是一样,解码也是不一样的!如果中国的程序员不会遇到乱码,那么只有使用汉语编程。汉语编程是怎么回事,我也不大清楚,应该是前年吧!我一朋友给我介绍汉语编程,怎么不错不错?当时因为学习忙没去关注这个,等我闲了,那个朋友不弄这个,问他,他也不说不大清楚,最后自己对这个学习也不了了之

    2022年7月7日
    48
  • 恐怖的vs2005 sp1安装过程.[通俗易懂]

    恐怖的vs2005 sp1安装过程.[通俗易懂]今天刚把这个400多M的sp1从公司拷回来,算计着这样可以省掉不少下载时间.可是,可是,竟然没有想到,安装过程是如此的恐怖.首先,我的C盘空间明显的感到害羞,只有1.5G的剩余空间了,赶

    2022年7月2日
    26
  • candump命令_生成dump文件命令

    candump命令_生成dump文件命令hexdump以ASCII、十进制、十六进制或八进制显示文件内容。

    2022年9月21日
    4
  • 服务器不支持ssl怎么回事,客户端和服务器不支持一般 SSL 协议版本或加密套件 解决方法…

    服务器不支持ssl怎么回事,客户端和服务器不支持一般 SSL 协议版本或加密套件 解决方法…今天谷歌、火狐、QQ等相关浏览器打开网站,突然提示如下错误:此网站无法提供安全连接www.huichengff.com使用了不受支持的协议。协议不受支持客户端和服务器不支持一般SSL协议版本或加密套件用火狐浏览器打开网站却提示如下错误:连接到www.huichengff.com时发生错误。无法安全地与对等端通信:没有双方共用的加密算法。错误代码:SSL_ERROR_NO_CYPHER…

    2022年6月2日
    334
  • DELPHI XE5开发WEB服务器及安卓手机客户端[通俗易懂]

    DELPHI XE5开发WEB服务器及安卓手机客户端[通俗易懂]Xe5开发web服务端和手机客户端时间:2013-9-1817:09:45点击: 6456Delphixe5作为最新开发利器,就类似如当年的DELPHI,功能强大,快发速度快,把VS2012远远甩在后面。下面以一个小例作为您开启新的历程: 建立一个webservices stand-alonevclapplication作为手机访问的服务端1、new-

    2022年7月18日
    18
  • IO流的分类_io流的作用

    IO流的分类_io流的作用IO流的分类可以分为以下三种:第一种:输入流和输出流按照流的流向来分,可以分为输入流和输出流。输入,输出都是从程序运行所在内存的角度来划分的。输入流:只能从中读取数据,而不能向其写入数据,由InputStream和Reader作为基类。输出流:只能向其写入数据,而不能从中读取数据。由OutputStream和Writer作为基类第二种:字节流和字符流字节流和字符流的用法几乎完全一样,区…

    2022年10月20日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号