Maison >base de données >tutoriel mysql >Quelle est la principale différence entre les procédures et les fonctions PL/SQL ?

Quelle est la principale différence entre les procédures et les fonctions PL/SQL ?

DDD
DDDoriginal
2024-12-27 21:10:11558parcourir

What's the Key Difference Between PL/SQL Procedures and Functions?

Fonction et procédure distinctives dans PL/SQL

PL/SQL, comme de nombreux autres langages de programmation, fournit des mécanismes pour encapsuler le code dans des unités modulaires appelés procédures et fonctions. Bien que ces constructions partagent des similitudes, elles présentent une différence cruciale : leur capacité à renvoyer des valeurs.

Une procédure est un sous-programme qui effectue des tâches spécifiques sans renvoyer explicitement de valeur. Il sert principalement à modifier les paramètres d'entrée, à manipuler des données ou à exécuter des opérations. Prenons l'exemple suivant :

CREATE OR REPLACE PROCEDURE my_proc
(p_name IN VARCHAR2 := 'John')
AS
BEGIN
  -- Do something with p_name
END;

En revanche, une fonction est un sous-programme qui, en plus d'effectuer des tâches, renvoie également une valeur. Il accepte des paramètres comme une procédure, mais il doit avoir une clause de retour. La valeur de retour est affectée à la variable qui appelle la fonction. Voici un exemple :

CREATE OR REPLACE FUNCTION my_func(p_name IN VARCHAR2 := 'John') RETURN VARCHAR2 AS
BEGIN
  -- Do something with p_name
  RETURN 'Hello, ' || p_name;
END;

Notez l'inclusion de la clause RETURN après la liste de paramètres dans la fonction. La dernière instruction du corps de la fonction attribue généralement une valeur à la variable locale qui sera renvoyée, comme my_varchar2_local_variable dans cet exemple.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn