PL/SQL允许重载嵌套的子程序、包子程序和类型方法。可以为多个不同的子程序使用同一个名称,但它们的形参在名称、数量、顺序和数据类型族上是不同的。(数据类型族是数据类型和它的子类型)。如果形参只是名称不同,则必须使用名称标记来指定相应的实参。
|
--子程序重载 DECLARE TYPE date_tab_typ IS TABLE OF DATE INDEX BY PLS_INTEGER; TYPE num_tab_typ IS TABLE OF NUMBER INDEX BY PLS_INTEGER;
hiredate_tab date_tab_typ; sal_tab num_tab_typ;
PROCEDURE initialize (tab OUT date_tab_typ, n INTEGER) IS BEGIN DBMS_OUTPUT.PUT_LINE('Invoked first version'); FOR i IN 1..n LOOP tab(i) := SYSDATE; END LOOP; END initialize;
PROCEDURE initialize (tab OUT num_tab_typ, n INTEGER) IS BEGIN DBMS_OUTPUT.PUT_LINE('Invoked second version'); FOR i IN 1..n LOOP tab(i) := 0.0; END LOOP; END initialize;
BEGIN initialize(hiredate_tab, 50); initialize(sal_tab, 100); END; |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1132822/ ,如需转载,请注明出处,否则将追究法律责任。