Procédures
Une procédure stockée est un ensemble d'instructions SQL qui est stocké en association avec une base de données. C'est un objet qui est créé avec l'option CRÉER UNE PROCÉDURE et invoquée avec l'instruction Déclaration CALL . Une procédure peut avoir zéro ou plusieurs paramètres d'entrée et zéro ou plusieurs paramètres de sortie.
Syntaxe :
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
proc_parameter:
[ IN | OUT | INOUT ] param_name type
func_parameter:
param_name type
type:
Any valid MySQL data type
characteristic:
COMMENT 'string'
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
routine_body:
Valid SQL routine statement
DELIMITEUR
Pour définir une procédure stockée, il est nécessaire de modifier temporairement le caractère séparateur utilisé pour délimiter les instructions SQL.
Le caractère séparateur par défaut utilisé en SQL est le point-virgule ( ;). Dans les exemples que nous allons réaliser, nous allons utiliser les caractères $$ pour délimiter les instructions SQL, mais il est possible d'utiliser tout autre caractère.
Exemple :
Dans cet exemple, nous définissons les caractères $$ comme séparateurs entre les instructions SQL.
DELIMITER $$
Dans cet exemple, nous configurons à nouveau que le caractère séparateur est le point-virgule.
DELIMITER ;
Paramètres d'entrée, de sortie et d'entrée/sortie
Dans les procédures stockées, nous pouvons avoir trois types de paramètres :
-
Entrée : Ils sont indiqués en plaçant le mot réservé IN devant le nom du paramètre. Ces paramètres ne peuvent pas changer de valeur à l'intérieur de la procédure, c'est-à-dire qu'à la fin de la procédure, ces paramètres auront la même valeur qu'ils avaient lors de l'appel de la procédure. En programmation, cela équivaudrait à passer par la valeur d'un paramètre
-
Sortie : Ils sont indiqués en plaçant le mot réservé OUT devant le nom du paramètre. Ces paramètres changent de valeur au cours de la procédure. Lorsque l'appel de la procédure est effectué, ils commencent avec une valeur initiale et lorsque l'exécution de la procédure se termine, ils peuvent se terminer avec une valeur différente. En programmation, cela équivaudrait à passer un paramètre par référence.
-
Entrée/Sortie : Il s'agit d'une combinaison de types IN et OUT. Ces paramètres sont indiqués en plaçant le mot réservé IN/OUT devant le nom du paramètre.
Blocs PL/SQL anonymes
Nous commencerons par les blocs anonymes, caractérisés par le fait qu'ils n'ont pas de nom et sont généralement créés et exécutés à partir de PL/SQL.
Je vais vous expliquer en détail ce que fait chacun d'entre eux :
-
DECLARE : dans cette zone nous ferons la déclaration des variables que nous utiliserons dans begin. S'il n'y a pas de variables à déclarer, il n'est pas nécessaire de la mettre.
-
BEGIN : cette zone contient le code PL/SQL à exécuter.
-
FIN : indique la fermeture du bloc anonyme.
J'espère que tout ceci vous a aidé, meilleures salutations.