A package is another type of PL/SQL construct that can house multiple program units and contain other constructs, such as variables and cursors. Using packages not only allows programmers to organize program units into related groups, but also enables the establishment of private program units, the sharing of variable values across program units, the overloading of program units, easier user privilege granting, and improved performance. Packages also lead to improved handling of dependencies.