跟其他高级语言一样,PLSQL也支持重载,包括存储过程和函数都可以重载,实际上PLSQL自身的很多函数或过程也都是具有重载的。
比如dbms_output.put_line过程可以打印数字、字符、日期等各种类型;
instr函数对VARCHAR2、Clob类型都支持等等。
下面举个简单的存储过程重载的例子:
在一个包的声明中,定义了print函数,可以打印布尔型、数字型、字符型和日期型变量,其中字符型是2个参数,其他是1个参数。
具体定义为:
执行效果如下:
在实际开发过程中,可能函数重载用到的更普遍一些,实现过程大同小异。但是重载还是要注意几个限制条件:
1.如果2个重载函数参数个数、类型相同,只是参数名称不同,调用时必须使用命名法调用,比如下面这个重载函数,输入参数都是一个number类型
不用命名法调用程序,会出现错误PLS-00307的错误,采用命名法以后就没有问题,对于参数是子