pl/sql编程----包

包:
包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成。
包规范是包的接口。它只是声明可以从包外部引用的类型,变量,常量,异常,游标和子程序。也就是说,它包含有关包的内容的所有信息,但不包括子程序的代码。
所有放置在规范中的对象被称为公共对象。任何不在包规范中但在包体中编码的子程序称为私有对象

使用create package 命令来创建包规范
实例:

create or replace package sp_package is 
--创建一个名为sp_package的包
 procedure sp_pro(sqdm varchar2,newmim number);
 function  sp_fun(spdm varchar2) return number;
--声明该包中有一个过程sp_pro和一个函数 sp_fun
end;

包的规范只包含了过程和函数的说明,但是没有过程和函数的实现代码。包体用于实现包规范中的过程和函数
包体具有包规范中声明的各种方法代码和其他私有声明,这些声明对包之外的代码是隐藏的
使用create package body 命令创建包体

create or replace package body sp_package is
    --sp_pro
     procedure sp_pro(sqdm varchar2,newmim number) is
        --如果要定义变量,常量等,可以在此定义;is与begin之间定义;
        begin
        --执行部分 根据用户名修改密码
	        update caozyxx set mim = newmim where caozydm =  sqdm;
        end;
        --sp_fun
        function  sp_fun(spdm varchar2) return number  is 
	        nianx number(7,2);
        begin
        --执行部分
	        select mim*12 into nianx from caozyxx where caozydm = spdm;
	        return nianx;
        exception
        --例外部分
    		 when no_data_found then
    			 dbms_output.put_line('输入错误');
    			return(0);
        end; 
end;

调用包:
当调用包的过程或是函数时,在过程和函数前需要带有包名,如果要访问其他方案的包,还需要在包名前加方案名。

调用包中的过程:

exec sp_package.sp_pro('0000',4500);
--call sp_package.sp_pro('0000',4500);

调用包中的函数:

--命令行
var bb number;
call sp_package.sp_fun('0000') into:bb;
 --在pl/sql块中调用:
    declare
    --定义变量用于接收返回值
            b number;
     begin 
            --执行,将返回的值给变量,并打印出来
              b:=sp_package.sp_fun('0000');
              dbms_output.put_line('年薪为'||b);
     end;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值