Advantages of Packages:
Packages offer various advantages: easier application design, information hiding, added functionality, modularity and better performance.
Modularity
Its Packages logically related types, subprograms and items in a named PL/SQL module to be encapsulated. Every package is simple to understand and the interfaces among packages are clear, simple, and well described. This aids application development.
Easier Application Design
When designing an application all which is required initially is the interface information in the package specifications. The specification can be coded and compiled without its body. Next, stored subprograms which reference the package can be compiled as well. A package bodies fully until the user is ready to complete the application.
Information Hiding
With packages, you can specify that types, items, and subprograms are public visible and accessible or private hidden and inaccessible. For instance, if a package holds four subprograms, three may be public and one private. A package hides the definition of the private subprogram so which only the package (not your application) is affected if the definition modify. This simplifies maintenance and enhancement. Also, via hiding implementation details from users and you protect the integrity of the package.
Added Functionality
Packaged public variables and cursors persist for the duration of a session. So, they can be shared through all subprograms which execute in the environment. Also, they permit data to be maintained across transactions without having to store it in the database.
Better Performance
When a packaged subprogram is called for the first time, the overall package is loaded into memory. Then, later calls to associate subprograms in the package needs no disk I/O. Also, packages stop cascading dependencies and so permit unnecessary recompiling. For example, if the definition of a packaged function is modified. Oracle require not recompile the calling subprograms because they do not depend on the package body.