La différence est- Une fonction doit renvoyer une valeur (de n'importe quel type) par définition par défaut de celle-ci, alors que dans le cas d'une procédure, vous devez utiliser des paramètres tels que OUT
ou IN OUT
paramètres pour obtenir les résultats. Vous pouvez utiliser une fonction dans un SQL
normal où comme vous ne pouvez pas utiliser une procédure dans SQL
déclarations.
Quelques différences entre les fonctions et les procédures
-
Une fonction renvoie toujours une valeur à l'aide de l'instruction return alors qu'une procédure peut renvoyer une ou plusieurs valeurs via des paramètres ou ne pas renvoyer du tout. Bien que,
OUT
les paramètres peuvent toujours être utilisés dans les fonctions, ils ne sont pas conseillés et il n'y a pas non plus de cas où l'on pourrait trouver nécessaire de le faire. Utilisation deOUT
Le paramètre empêche l'utilisation d'une fonction dans une instruction SQL. -
Les fonctions peuvent être utilisées dans des instructions SQL typiques telles que
SELECT
,INSERT
,UPDATE
,DELETE
,MERGE
, contrairement aux procédures. -
Les fonctions sont normalement utilisées pour les calculs alors que les procédures sont normalement utilisées pour exécuter la logique métier.
-
Oracle fournit la possibilité de créer des "index basés sur les fonctions" pour améliorer les performances de l'instruction SQL suivante. Cela s'applique lors de l'exécution de la fonction sur une colonne indexée dans la clause where d'une requête.
Plus d'informations sur les fonctions Vs. Procédures ici et ici.