Buscando una respuesta canónica a la pregunta de por qué los paquetes deberían preferirse en una base de datos Oracle en lugar de procedimientos y funciones independientes.
Beneficios de los paquetes
Agrupamiento lógico : los métodos que funcionan juntos se pueden colocar en una unidad cohesiva en lugar de simplemente acoplarse lógicamente, pero físicamente separados.
Métodos privados seguros : las funciones y los procedimientos se pueden hacer privados del paquete y solo se pueden usar dentro de él. Esto hace que la superficie pública sea más simple y segura.
Gestión de privilegios : los permisos se pueden otorgar una vez para un grupo de procedimientos que funcionan juntos en lugar de por separado para cada procedimiento / función requerida.
Envoltura segura : los paquetes envueltos son más difíciles de desenvolver que las funciones / procedimientos envueltos.
Nombres simplificados : un espacio de nombres más grande permite nombres que son más simples y pueden reutilizarse en otros paquetes.
Mejor rendimiento : los paquetes pueden compilarse y cargarse en la memoria en su totalidad en lugar de fragmentarse como otros métodos. Este beneficio, si es que existe, es mínimo en comparación con los otros beneficios.
Invalidación reducida : cambiar el cuerpo de un paquete no invalida las dependencias como lo hace el cambio de una función o procedimiento.
Características únicas : variables de paquete, constantes de paquete, inicialización, estado de sesión, comentarios de paquete y métodos sobrecargados.
Referencias:
11.2 Guía de conceptos
Pregunta a Tom Pregunta
StackOverflow.com Pregunta sobre el rendimiento del paquete
Desenvolviendo presentación PL / SQL (pdf)