pl/sql模块重载

 

 

模块重载
  多态:语言能够定义并且选择性的使用多个相同名称的程序中的一个的能力。
  静态多态:在编译时刻决定使用哪个程序。重载即为静态多态。
  动态多态:在运行时刻决定使用哪个程序。
  pl/sql支持在块的声明部分,包的声明部分和包体部分,对象类型的定义中对过程和函数进行重载
重载的限制:
  1、重载的程序的参数中至少一个来自不同的数据类型
    参数的数据类型不同但只是属于不同的子类型,不能进行重载,比如一个参数是char,另一个是varchar2。
    但在从0g开始,使用数字类型的不同子类型,也可以重载,比如一个参数是pls_integer,另一个程序的参数是binary_float。oracle遵循这样的优先级:pls_integer或者binary_integer,number,binary_float,binary_double。
  2、重载程序只是参数的名称不同,在调用时必须使用命名表示法。
  3、不能仅靠参数列表中的参数模式区别重载程序
  4、重载函数不能仅靠返回值的数据类型区分
  5、所有的重载程序必须在相同的pl/sql作用范围或者同一个中定义。
比如:declare
        procedure proc_name (num_in in pls_integer) is
          begin
            dbms_output_put_line('pls_integer version');
          end proc_name;
        procedure proc_name (num_in in number) is
          begin
            dbms_output.put_line('number version');
          end proc_name;
        begin
          proc_name(1.1);
          proc_name(1);
        end;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值