Maison  >  Article  >  base de données  >  Introduction détaillée à la syntaxe des procédures stockées Oracle

Introduction détaillée à la syntaxe des procédures stockées Oracle

PHPz
PHPzoriginal
2023-04-18 15:23:001064parcourir

La procédure stockée Oracle est un morceau de code PL/SQL précompilé qui peut être appelé et exécuté en cas de besoin. Les procédures stockées peuvent encapsuler une certaine logique métier, améliorer l'efficacité de l'exécution SQL et encapsuler des opérations complexes dans une opération simple en appelant l'interface, améliorant ainsi la maintenabilité et la fiabilité des applications de base de données. Cet article présentera en détail la syntaxe des procédures stockées Oracle.

Créer des procédures stockées Oracle

Dans Oracle, il existe deux manières principales de créer des procédures stockées. L'une consiste à utiliser l'instruction CREATE PROCEDURE pour créer une procédure stockée et l'autre consiste à utiliser les outils PL/SQL pour créer une procédure stockée. .

La syntaxe d'utilisation de l'instruction CREATE PROCEDURE pour créer une procédure stockée est la suivante :

CREATE [OR REPLACE] PROCEDURE nom_procédure
(nom_paramètre [IN | OUT | IN OUT] type_données, ...)
IS
[DÉCLARATIONS ]
BEGIN
Déclarations
[EXCEPTION]
Déclarations de gestion des exceptions
END [procedure_name];

Parmi elles, CREATE PROCEDURE est l'instruction permettant de créer une procédure stockée, OR REPLACE est un mot-clé facultatif, indiquant que si la procédure stockée est déjà existe, remplacez-le ; nom_procédure est la procédure stockée ; nom_paramètre est le nom du paramètre d'entrée et de sortie de la procédure stockée ; IS est le symbole de fin de l'en-tête de la procédure stockée ; est la section facultative de déclaration de variable ou de constante ; entre BEGIN et END est la procédure stockée. Le corps principal, qui contient les instructions SQL et le code PL/SQL.

Le processus de création d'une procédure stockée à l'aide des outils PL/SQL est le suivant :

  1. Ouvrez un outil PL/SQL tel que PL/SQL Developer ou SQL Developer ;
  2. Sélectionnez "Nouveau" dans le menu "Fichier", puis sélectionnez « Procédure stockée » ;
  3. Entrez le code de la procédure stockée dans la fenêtre
  4. Cliquez sur le bouton « Enregistrer » pour l'enregistrer en tant que fichier de procédure stockée.

Passage de paramètres

Les procédures stockées Oracle peuvent recevoir et renvoyer des paramètres, qui peuvent être des paramètres d'entrée, des paramètres de sortie ou des paramètres d'entrée et de sortie. Les paramètres d'entrée sont les valeurs des paramètres transmises dans la procédure stockée, les paramètres de sortie sont les valeurs de résultat calculées dans la procédure stockée, et les paramètres d'entrée et de sortie jouent en même temps les rôles de paramètres d'entrée et de sortie.

Lors de la définition des paramètres d'une procédure stockée, vous devez spécifier le nom du paramètre, le type de données et la direction du paramètre (IN, OUT ou IN OUT). Par exemple :

CREATE OR REPLACE PROCEDURE emp_salary_increase
(emp_id IN NUMBER, raise_percent IN NUMBER, new_salary OUT NUMBER)
IS
BEGIN
SELECT salaire + (salary * (increase_percent/100)) INTO new_salary FROM employes WHERE employe_id = emp_id;
FIN;

Dans cet exemple, la procédure stockée emp_salary_increase reçoit 3 paramètres, emp_id et Increase_percent sont des paramètres d'entrée, et new_salary est le paramètre de sortie.

Lors du référencement des paramètres de procédure stockée, l'abréviation du nom de la procédure stockée doit être ajoutée avant le nom du paramètre. Par exemple :

emp_salary_increase(100, 10, :new_salary);

Dans le code ci-dessus, 100 et 10 sont les valeurs des paramètres de emp_id et Increase_percent, et :new_salary est la valeur du paramètre de sortie new_salary calculée par le procédure stockée.

Branches conditionnelles et structures de boucles

Comme d'autres langages de programmation, les procédures stockées Oracle prennent également en charge les branches conditionnelles et les structures de boucles. Les instructions de branchement courantes incluent les instructions IF-THEN, IF-THEN-ELSE et CASE, et les instructions de boucle incluent les instructions WHILE et FOR. La syntaxe de l'instruction

IF-THEN est la suivante :

IF condition THEN
-- exécuter le bloc d'instructions
END IF;

Dans cet exemple, si la valeur de la condition est VRAIE, le bloc d'instructions est exécuté. La syntaxe de l'instruction

IF-THEN-ELSE est la suivante :

IF condition THEN
-- exécuter le bloc d'instructions
ELSE
-- exécuter un autre bloc d'instructions
END IF;

Dans cet exemple, si la valeur de La condition est TRUE, Ensuite, exécutez le premier bloc d'instructions, sinon exécutez le deuxième bloc d'instructions.

La syntaxe de l'instruction CASE est la suivante :

CASE case_expression
WHEN when_expression THEN

-- execute statement block

WHEN when_expression THEN

-- execute another statement block

ELSE

-- default block

END CASE ;

Dans cet exemple, case_expression est l'expression de comparaison dans CASE instruction, when_expression Il s'agit de l'expression conditionnelle de l'instruction CASE, qui peut avoir plusieurs branches WHEN. La syntaxe de la boucle

WHILE est la suivante :

WHILE condition LOOP
-- exécuter le bloc d'instructions
END LOOP;

Dans cet exemple, la boucle while exécute le bloc d'instructions de manière cyclique en fonction du résultat de l'expression de la condition.

La syntaxe de la boucle FOR est la suivante :

FOR index IN [REVERSE] lower_bound..upper_bound LOOP
-- exécuter le bloc d'instructions
END LOOP ;

Dans cet exemple, index est une variable entière, lower_bound et upper_bound sont respectivement des boucles valeurs de début et de fin. Si vous utilisez le mot-clé REVERSE, la boucle itère de haut en bas.

Gestion des exceptions

Dans les procédures stockées Oracle, si une exception se produit, elle doit être traitée aussi élégamment que possible. Si la gestion des exceptions n'est pas prise en compte, la procédure stockée risque de ne pas pouvoir terminer son exécution ou divers problèmes peuvent survenir.

La gestion des exceptions peut être effectuée à l'aide du bloc d'instruction EXCEPTION, qui contient un ou plusieurs blocs WHEN-THEN pour effectuer différentes opérations de traitement dans différentes situations d'exception. Chaque bloc WHEN-THEN doit spécifier le nom de l'exception et l'opération de gestion des exceptions correspondante. Par exemple :

DECLARE
 emp_id NUMBER(10);
 emp_salary NUMBER(10, 2);
BEGIN
 SELECT salary INTO emp_salary FROM employees WHERE employee_id = emp_id;
EXCEPTION
 WHEN no_data_found THEN

emp_id := NULL;

WHEN others THEN

RAISE;

END;

在这个例子中,如果SELECT语句找不到数据行,则没有找到数据的异常被捕获。异常处理程序将赋值NULL值到emp_id变量。如果有其他未知异常,则使用RAISE语句继续抛出异常。

结论

本文介绍了Oracle存储过程的语法,包括创建存储过程、参数传递、条件分支、循环结构和异常处理。了解Oracle存储过程的语法和使用方法可以让你更好地利用Oracle数据库的强大功能,提高开发效率和应用程序的可靠性。

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