Vous cherchez une réponse canonique à la question de savoir pourquoi les packages devraient être préférés dans une base de données Oracle par rapport aux procédures et fonctions autonomes.
Vous cherchez une réponse canonique à la question de savoir pourquoi les packages devraient être préférés dans une base de données Oracle par rapport aux procédures et fonctions autonomes.
Réponses:
Avantages des packages
Regroupement logique - Les méthodes qui fonctionnent ensemble peuvent être regroupées dans une unité cohérente plutôt que simplement couplées logiquement mais physiquement séparées.
Méthodes privées sécurisées - Les fonctions et procédures peuvent être rendues privées au package et ne peuvent être utilisées qu'à l'intérieur de celui-ci. Cela rend la surface publique plus simple et plus sûre.
Gestion des privilèges - Les autorisations peuvent être accordées une fois pour un groupe de procédures qui fonctionnent ensemble plutôt que séparément pour chaque procédure / fonction requise.
Emballage sécurisé - Les packages enveloppés sont plus difficiles à déballer que les fonctions / procédures encapsulées.
Dénomination simplifiée - Un espace de noms plus grand permet des noms plus simples et peuvent être réutilisés dans d'autres packages.
Meilleures performances - Les packages peuvent être compilés et sont chargés dans la mémoire dans leur intégralité plutôt que de manière fragmentaire comme d'autres méthodes. Cet avantage, s'il existe, est minime par rapport aux autres avantages.
Invalidation réduite - La modification d'un corps de package n'invalide pas les dépendances comme le fait la modification d'une fonction ou d'une procédure.
Caractéristiques uniques - Variables de package, constantes de package, initialisation, état de session, commentaires de package et méthodes surchargées.
Références:
11.2 Concepts Guide
Ask Tom Question
StackOverflow.com Question on Package Performance
Unwrapping PL / SQL Presentation (pdf)