La mayoría de la aplicaciones basadas en programas PL/SQL están constituidas por numerosos paquetes, algunos de los cuales son APIs de alto nivel que pueden ser utilizadas por los desarrolladores a la hora de implementar los requerimientos de los usuarios, y otros son paquetes de ayuda que son utilizados y llamados por otros paquetes dentro de la aplicación.
Antes de la versión 12c de las bases de datos Oracle, el código PL/SQL no podía restringir al esquema de una sesión el uso de aquellos subprogramas que se encontrasen en un paquete PLSQL para el que dicho esquema tuviese permisos de ejecución (GRANT EXECUTE). Desde la llegada de la versión 12c de la base de datos Oracle, las unidades de programa PL/SQL pueden utilizar la nueva cláusula ACCESSIBLE BY que posibilita al desarrollador especificar una “lista blanca” de unidades PLSQL que tendrán acceso a la unidad PLSQL que está creando o modificando.









