Advantages of Subprograms:
Subprograms provide extensibility; that is, they let you tailor the PL/SQL language to suit your requirement. Subprograms also give modularity; that is it would let you break a program down into manageable and well-defined logic modules. This supports top-down design and the stepwise refinement approach to problem solving.
Also, subprograms promote reusability and maintainability. When it validated once, a subprogram can be used with confidence in any number of applications. In addition, only the subprogram is affected if its definition modifies. This simplifies maintenance and enhancement.
At last, subprograms aid abstraction the mental division from particulars. For use subprograms, you must know what they do and not how they work. Thus, you can design applications from the top down without worrying about implementation details. The Dummy (stubs) subprograms permit you to defer the definition of functions and procedures until you debug and test the main program.