Dans Oracle, les packages encapsulent les procédures associées, les fonctions et les curseurs et variables associés dans une même unité située dans la base de données. Les packages comportent le plus souvent deux parties : une spécification et un corps. La spécification est l'interface avec vos applications ; elle déclare les types, variables, constantes, exceptions, curseurs et sous-programmes disponibles. Le corps définit pleinement les curseurs et sous-programmes, et met en oeuvre la spécification.
L'utilisation des packages permet des améliorations dans les domaines suivants :
Encapsulation des procédures et variables associées dans une unité unique et nommée au sein de la base de données, ce qui permet de faciliter l'organisation lors du processus de développement et de simplifier la gestion des privilèges.
Séparation des procédures, variables, constantes et curseurs publics et privés.
Meilleures performances puisque le package est entièrement chargé en mémoire lorsqu'un de ses objets est appelé pour la première fois.