PLSQL Language Reference-PL/SQL子程式-過載子程式

LuiseDalian發表於2014-03-30

過載子程式

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部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1132822/,如需轉載,請註明出處,否則將追究法律責任。

相關文章