PL/SQL package subprogram overloading allows multiple subprograms (procedures or functions) to share the same name, provided their formal parameters differ in number, data type, or order. Overloading cannot be done based solely on differing return types, and standalone subprograms cannot be overloaded.