Différence entre la procédure stockée et la fonction

Différence entre la procédure stockée et la fonction

Procédure stockée vs fonction
 

Les procédures et fonctions stockées sont deux types de blocs de programmation. Les deux doivent avoir des noms d'appel. Les noms d'appels sont utilisés pour les appeler dans un autre bloc de programmation comme les fonctions et les packages des procédures ou les requêtes SQL. Ces deux types d'objets acceptent les paramètres et effectuent la tâche derrière ces objets. Ceci est la syntaxe (dans Oracle) pour créer une procédure stockée,

 créer ou remplacer la procédure procédure (paramètres)

 comme

 commencer

     déclarations;

 exception

     gestion des exceptions

 fin;

Et voici la syntaxe pour créer une fonction (dans Oracle),

Créer ou remplacer la fonction Fonction_name (paramètres)

retour return_datatype

comme

commencer

déclarations;

return return_value / variable;

exception;

gestion des exceptions;

fin;

Procédures stockées

Comme mentionné ci-dessus, les procédures stockées sont nommées blocs de programmation. Ils acceptent les paramètres comme entrée et processus de l'utilisateur en fonction de la logique derrière la procédure et donnent le résultat (ou effectuent une action spécifique). Ces paramètres peuvent être dans les types, hors et inut. Des déclarations variables, des affectations variables, des instructions de contrôle, des boucles, des requêtes SQL et d'autres fonctions / procédures / appels de package peuvent être à l'intérieur du corps des procédures.

Les fonctions

Les fonctions sont également nommées blocs de programmation, qui doivent renvoyer une valeur à l'aide de l'instruction de retour, et avant qu'il ne renvoie une valeur, son corps effectue également certaines actions (selon la logique donnée). Les fonctions acceptent également les paramètres à exécuter. Les fonctions peuvent être appelées à l'intérieur des requêtes. Lorsqu'une fonction est appelée à l'intérieur d'une requête de sélection, elle s'applique à chaque ligne de l'ensemble de résultats de la requête de sélection. Il existe plusieurs catégories de fonctions Oracle. Ils sont,

  • Fonctions à ligne unique (renvoie un seul résultat pour chaque ligne de la requête)

Il y a des sous-catégories de fonctions à ligne unique.

  • Fonction numérique (Ex: ABS, SIN, COS)
  • Fonction de caractère (Ex: Concat, initcap)
  • Fonction de date d'heure (ex: Last_day, suivant_day)
  • Fonctions de conversion (ex: vers_char, vers_date)
  • Fonction de collecte (ex: cardinalité, set)
  • Fonctions agrégées (renvoie une seule ligne, basée sur un groupe de lignes. Ex: avg, sum, max)
  • Fonctions analytiques
  • Fonctions de référence d'objet
  • Fonctions du modèle
  • Fonctions définies par l'utilisateur

Quelle est la différence entre la fonction et la procédure stockée?

• Toutes les fonctions doivent renvoyer une valeur en utilisant l'instruction RETOUR. Les procédures stockées ne renvoient pas de valeurs en utilisant l'instruction RETOUR. Retour instruction à l'intérieur d'une procédure renverra son contrôle au programme d'appel. Les paramètres OUT peuvent être utilisés pour renvoyer les valeurs des procédures stockées.

• Les fonctions peuvent être appelées à l'intérieur des requêtes, mais les procédures stockées ne peuvent pas être utilisées à l'intérieur des requêtes.

• Le type de données de retour doit être inclus pour créer une fonction, mais dans la procédure stockée DDL, ce n'est pas.