怎么查看package的声明和定义

在pl/sql developer中,你在sql window中输入package_name,右键package_name 然后点击Edit Spec & Body 

 

然后选择第二个选项卡就是包体了

 

 

Package的用处

function和stored procedure实际上就跟我们写代码中用到的一个个函数是一样的,只不过stored procedure是没有返回值的函数,相当前面带个void的函数. 在面向过程的编程语言如C中,放眼望去是一堆堆的函数,如果数量一多显得有点杂乱无章.如果在面向对象的语言中就很好办,用个类可以把很多函数打包起来,oracle中有个叫package的东东,就类似于类,可以把很多function与stored procedure打包放一起. 但是sql server中没有package这东东.如果实在觉得function多了太乱了可以把某一类function放到某个schema下面,用schema来模拟下类似的功能. Package的用法 在讲package前先讲下as与is的区别 在oracle的sql或pl/sql语句中经常会看到is和as这两关键字.有时随便用哪个都可以,有时却又不能混淆使用. 1.创建视图:只能用as 比如create view my_view as select * from tmp;此时如果用is会报错. 2.声明游标:只能用is 例如declare cursor my_cur is select * from tmp; begin  end; 3.as与is可以通用 在创建package,procedure,function时is与as可以通用,没有区别. 包头与包体我们知道C++中有头文件与源文件这样的区分.package也类似,分为包头与包体,分开单独创建. 包头:是声明部分,不能有定义.有proedure与function,还有公共变量的声明.这里声明的procedure和function,变量相当于C++中用public标志的东东,外部都可以访问. 但变量只能package内部使用 包体:除了实现包头的声明外还可以另外创建一些procedure,function.但是它们只能在packeg内部使用了,不能被外部调用,相当于C++中private修饰的一样.当然包体也可以定义些公共变量,同样是只能package内部使用. 创建包头create [or replace] package package_name as --procedure ,function declaration end [package_name]; --中括号括起来的表示可选项replace表示如果有同名的对象则覆盖掉. 假如创建如下包头 create or replace package my_pkg as v_id integer := 888; procedure do_something; function    get_id return integer; end my_pkg;   创建包体包体名字要跟包头一样. create or replace package body my_pkg as   function get_id return integer as begin return v_id; end get_id;   procedure do_something as begin null; end do_something;   

end my_pkg;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值