A package is a group of procedures, functions, variables and SQL statements created as a single unit. It is used to store together related objects. A package has two parts, Package Specification or spec or package header and Package Body.
Package Specification acts as an interface to the package. Declaration of types, variables, constants, exceptions, cursors and subprograms is done in Package specifications. Package specification does not contain any code.
Package body is used to provide implementation for the subprograms, queries for the cursors declared in the package specification or spec.
Advantages:
References:
http://www.exforsys.com/tutorials/oracle-9i/oracle-packages.html
http://www.lsbu.ac.uk/oracle/oracle7/server/doc/SCN73/ch14.htm
http://download.oracle.com/docs/cd/B10500_01/appdev.920/a96624/09_packs.htm