PL 允许对包内程序程序进行重载。所谓重载时指两个或多个程序有相同的名称,但拥有不同的参数变量、参数顺序或参数数据类型。调用时根据传入参数的类型来选择程序。 可以参考如下包定义的示例:

    1. CREATE OR REPLACE PACKAGE demo_pack1
    2. IS
    3. DeptRec dept%ROWTYPE;
    4. V_sqlcode NUMBER;
    5. V_sqlerr VARCHAR2(2048);
    6. FUNCTION query_dept(dept_no IN NUMBER)
    7. RETURN INTEGER;
    8. FUNCTION query_dept(dept_no IN VARCHAR2)
    9. RETURN INTEGER;
    10. END demo_pack1;

    传输参数为数字或者字符串可以决定函数 query_dept 方法。 可以在包体定义中分别实现其功能。