【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 国内一些服务器网站不用备案教程[通俗易懂]

    关于免备案这个问题,我首先说明一下,我不是在提倡大家域名不要备案,这只是一项技术并不是用来给大家滥用的,希望大家能够明白!众所周知,要想使用国内服务器或者主机是是必须要通过工信局的ICP备案的,但是也有的伙伴怕麻烦或者通过不了,这里我教下大家这个使用CDN做到免备案,其实要做到绕过国内服务器域名备案的方法目前小编知道的有两种,一种是利用反向代理、一种就是利用CDN,当然了,你有更多方法愿意分享出来的,可以在评论下方提出。今天,我们就着重讲利用CDN绕备案吧首先,我们要准备好工具,网站、服务器

    2022年4月8日
    293
  • python 字符串按行切割

    python 字符串按行切割strs=xxxxxs.split(‘\n’)if__name__==’__main__’:response=requests.get(“https://video.buycar5.cn/20200809/Vqdbr9lj/2000kb/hls/index.m3u8”)split=response.text.split(‘\n’)print(split)

    2022年6月18日
    33
  • databus 支持oracle么,Databus[通俗易懂]

    databus 支持oracle么,Databus[通俗易懂]系统如果要应付大规模的请求,一条必经之路就是数据库的分割,单服务器的性能早晚都会成为负载的短板。而数据库分割,通常有Master/Salve或者集群Cluster的方式,这些方式通常都是基于同种类型的数据。对于一个庞大的多类型数据库的系统,在不同的数据库之间(甚至是不同地理位置的机房间)保持数据的同步,需要更复杂的解决方案。LinkedIn良心开源了内部的一个项目Databus,正是解决这个问题的…

    2022年10月17日
    1
  • phpstorm2021 激活码【永久激活】

    (phpstorm2021 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlML…

    2022年3月21日
    154
  • 基于Speex的声学回声消除[通俗易懂]

    基于Speex的声学回声消除[通俗易懂]所谓声学回声消除,是为了解决VoIP(网络电话)中这样一个问题:即A与B进行通话,A端有麦克风和扬声器分别用来采集A的声音和播放B的声音,B端有麦克风和扬声器分别用来采集B的声音和播放A的声音,很明显,由于声音传播的特性,A端的麦克风在采集A的声音的同时,也采集到了A端扬声器播放的来自B的声音,也就是A端采集到的声音是一个混合的声音,这个声音通过网络发给B时,B就不仅能听到A的声音,也能听见B前几

    2025年5月24日
    5
  • centos打开windows的ftp 无法显示内容 显示空白内容

    centos打开windows的ftp 无法显示内容 显示空白内容

    2021年8月24日
    53

发表回复

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

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