Procédure Stockée

Une procédure stockée est un ensemble de commandes SQL, ou peut être décrite comme un sous-programme avec un nom spécifique stocké dans la base de données. Le processus exécuté par une procédure stockée consiste à recevoir des paramètres d’entrée, à retourner des valeurs sous forme de paramètres de sortie à l’appelant, et à effectuer des opérations de manipulation de données dans la base de données, exécutées par un programme tel qu’un déclencheur ou une autre procédure stockée. L’utilisation des procédures stockées présente plusieurs avantages :

  • Améliore les performances de l’application, car les procédures stockées s’exécutent plus rapidement que les commandes SQL non compilées envoyées par l’application.
  • Réduit le trafic réseau entre la base de données et l’application, car il n’est pas nécessaire d’envoyer des instructions SQL non compilées.
  • Peut être utilisée de manière répétée et transparente sur toutes les applications.

Cependant, l’utilisation des procédures stockées présente également des inconvénients :

  • Le débogage n’est pas possible.
  • Augmente la charge sur le matériel du serveur.
  • Leur écriture n’est pas simple et nécessite des connaissances spécifiques.

Syntaxe des Procédures Stockées

La syntaxe présente dans les procédures stockées :

  • Syntaxe pour écrire une procédure stockée

DELIMITER //

CREATE PROCEDURE nom_procedure()

BEGIN

requête sql

END //

DELIMITER ;
  • Syntaxe pour appeler une procédure stockée

CALL nom_procedure()
  • Syntaxe pour déclarer une variable dans une procédure stockée

DECLARE nom_variable type_donnée(longueur) DEFAULT valeur;
  • Syntaxe d’une procédure stockée avec paramètres

Il existe trois modes pour les paramètres :

  • IN, le mode par défaut où les modifications à l’intérieur de la procédure stockée n’affectent pas le paramètre.
  • OUT, un mode qui modifie la valeur du paramètre et la renvoie à l’appelant.
  • INOUT, un mode qui combine IN et OUT.

Exemple de syntaxe pour définir une procédure stockée avec paramètres :

DELIMITER //

CREATE PROCEDURE nom_procedure([mode] [paramètre]
[type_donnée])

BEGIN

requête sql

END //

DELIMITER ;

Exemple de syntaxe pour appeler une procédure stockée avec paramètres :

CALL nom_procedure([valeur_paramètre])

Curseur

Un curseur est un objet dans une base de données utilisé pour traiter l’exécution d’instructions SQL spécifiques, ou peut être décrit comme une variable contenant le résultat d’une requête comportant plus d’une ligne ou d’un enregistrement. Un curseur peut itérer sur le nombre de lignes d’une table. Il existe plusieurs caractéristiques d’un curseur :

  • Ne peut pas être mis à jour (lecture seule).
  • Un curseur se déplace uniquement dans une direction (non défilable).
  • La mise à jour de la table référencée par le curseur n’est pas recommandée car elle peut produire des résultats indésirables (asensible).

Syntaxe des Procédures Stockées (pour les Curseurs)

La syntaxe présente dans les curseurs :

Plusieurs étapes sont nécessaires pour créer un curseur :

  • Declare, l’étape pour déclarer le curseur, avec la syntaxe :

DECLARE nom_curseur CURSOR FOR
instruction_SELECT;
  • Open, l’étape pour ouvrir ou activer le curseur, avec la syntaxe :

OPEN nom_curseur;
  • Fetch, l’étape pour récupérer les données du curseur et les stocker dans une variable, avec la syntaxe :

FETCH nom_curseur INTO liste_variables
  • Close, l’étape pour désactiver le curseur, avec la syntaxe :

CLOSE nom_curseur

Différences entre Procédure Stockée et Curseur

La différence entre une procédure stockée et un curseur est qu’une procédure stockée ne contient que des instructions de déclaration de MySQL, tandis qu’un curseur contient le résultat de la requête et sert également de pointeur vers ce résultat. Cela permet au curseur d’effectuer des opérations complexes qu’une procédure stockée ne peut pas réaliser. L’une d’elles est l’itération sur les enregistrements.

m

Shares:
Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *