CREATE OR REPLACE PACKAGE testpkg IS -- Author : ADMINISTRATOR -- Created : 2012-2-27 14:42:44 -- Purpose : -- Public type declarations -- Public function and procedure declarations FUNCTION getparam(aaa NUMBER) RETURN VARCHAR2; FUNCTION getparam(aaa VARCHAR2) RETURN VARCHAR2; END testpkg;
可以看到,这个包定义了两个公有函数getparam,仅参数类型不同,返回类型必须相同。这点上与C++之类并无区别。
CREATE OR REPLACE PACKAGE BODY testpkg IS -- Private type declarations -- Function and procedure implementations FUNCTION getparam(aaa IN NUMBER) RETURN VARCHAR2 IS BEGIN RETURN('number~'); END; FUNCTION getparam(aaa IN VARCHAR2) RETURN VARCHAR2 IS BEGIN RETURN('varchar2~'); END; END testpkg;
包体是实现,此时测试两个函数:
select testpkg.getparam(11) from dual; select testpkg.getparam(‘111’) from dual;
可看到分别有不同的输出,显然重载机制分别调用了不同的函数实现。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/348.html