Maison > base de données > Oracle > Oracle SQL exécute une procédure stockée

Oracle SQL exécute une procédure stockée

王林
Libérer: 2023-05-13 16:52:08
original
7559 Les gens l'ont consulté

La base de données Oracle est un système de gestion de bases de données relationnelles largement utilisé au niveau international. Ses fonctions puissantes et ses performances stables le rendent largement utilisé dans le développement d'applications au niveau de l'entreprise. Les procédures stockées constituent une partie très importante de la base de données Oracle. Elles peuvent encapsuler un ensemble d'instructions SQL dans un tout, ce qui peut réduire la surcharge de transmission du réseau et améliorer l'efficacité lors de leur appel.

Cet article expliquera comment exécuter des procédures stockées dans Oracle.

1. Création de procédures stockées

Pour créer une procédure stockée dans Oracle, vous devez utiliser l'instruction CREATE OR REPLACE PROCEDURE. Voici un exemple simple :

CREATE OR REPLACE PROCEDURE PROCEDURE_NAME (IN_PARAM_NAME IN DATA_TYPE, OUT_PARAM_NAME OUT DATA_TYPE)
IS
BEGIN
  -- SQL statements here
END;
Copier après la connexion

Dans cet exemple, PROCEDURE_NAME représente le nom de la procédure stockée, IN_PARAM_NAME et OUT_PARAM_NAME représentent les noms des paramètres d'entrée et des paramètres de sortie, et DATA_TYPE représente le type de données des paramètres. Dans le corps de la procédure stockée, nous pouvons écrire un ensemble d’instructions SQL. Ces instructions SQL seront exécutées lors de l'appel de la procédure stockée.

2. Exécution de procédures stockées

Pour exécuter une procédure stockée, vous pouvez utiliser l'instruction EXECUTE ou CALL dans SQL*Plus. Dans l'exemple suivant, nous appellerons la procédure stockée PROCEDURE_NAME créée ci-dessus :

EXECUTE PROCEDURE_NAME(IN_PARAM_VALUE, OUT OUT_PARAM_VALUE);
Copier après la connexion

Dans cet exemple, IN_PARAM_VALUE et OUT_PARAM_VALUE sont respectivement les valeurs des paramètres d'entrée et des paramètres de sortie.

En fait, il existe un moyen plus pratique d'appeler des procédures stockées. Nous pouvons appeler des procédures stockées à l'aide de fonctions. Dans l'exemple suivant, nous appellerons la procédure stockée PROCEDURE_NAME créée ci-dessus :

SELECT FUNCTION_NAME(IN_PARAM_VALUE) FROM DUAL;
Copier après la connexion

Dans cet exemple, FUNCTION_NAME est une instruction SELECT encapsulée dans une procédure stockée, qui renverra un jeu de résultats. Lors de l’appel de la fonction, il suffit de transmettre la valeur du paramètre d’entrée. Il convient de noter que les procédures stockées qui renvoient des jeux de résultats ne peuvent pas être appelées de cette manière.

3. Gestion des exceptions dans les procédures stockées

Pendant la procédure stockée, nous pouvons rencontrer quelques exceptions. Par exemple, l'exécution d'une instruction SQL échoue, les types de données ne correspondent pas, etc. Afin de garantir la stabilité du processus stocké, nous devons résoudre ces problèmes via le mécanisme de gestion des exceptions dans le processus stocké. Voici un exemple simple :

CREATE OR REPLACE PROCEDURE PROCEDURE_NAME (IN_PARAM_NAME IN DATA_TYPE, OUT_PARAM_NAME OUT DATA_TYPE)
IS
BEGIN
  -- SQL statements here
  EXCEPTION
    WHEN EXCEPTION_TYPE THEN
      -- exception handling statements here
END;
Copier après la connexion

Dans cet exemple, EXCEPTION_TYPE est le type d'exception, et nous pouvons spécifier un ou plusieurs types d'exception. Lorsqu'une instruction SQL ne parvient pas à s'exécuter ou que le type de données ne correspond pas, le type d'exception correspondant sera généré. Dans la section EXCEPTION, nous pouvons écrire du code de gestion des exceptions. Ces codes seront exécutés lorsqu'une exception se produit.

4. Débogage des procédures stockées

Pendant le processus de développement, nous pouvons rencontrer divers problèmes. À ce stade, nous devons déboguer la procédure stockée pour découvrir le problème. Oracle fournit des outils de débogage pour nous aider à déboguer plus facilement les procédures stockées.

L'un des outils les plus couramment utilisés est la fonction DBMS_OUTPUT.PUT_LINE. Cette fonction peut générer des informations de débogage vers l'interface de ligne de commande de SQLPlus. Dans le corps de la procédure stockée, nous pouvons insérer l'instruction DBMS_OUTPUT.PUT_LINE partout où nous avons besoin de la déboguer. Pendant la phase de débogage, nous pouvons afficher les informations de débogage vers l'interface de ligne de commande de SQLPlus via la commande SET SERVEROUTPUT ON. Par exemple :

CREATE OR REPLACE PROCEDURE PROCEDURE_NAME (IN_PARAM_NAME IN DATA_TYPE, OUT_PARAM_NAME OUT DATA_TYPE)
IS
BEGIN
  DBMS_OUTPUT.PUT_LINE('1');
  -- SQL statements here
  DBMS_OUTPUT.PUT_LINE('2');
END;
Copier après la connexion

Dans cet exemple, nous avons inséré deux instructions DBMS_OUTPUT.PUT_LINE dans la procédure stockée. Lors de l'exécution de la procédure stockée, ces deux instructions afficheront 1 et 2 sur l'interface de ligne de commande SQL*Plus.

Résumé

Cet article présente la méthode de création, la méthode d'exécution, la méthode de gestion des exceptions et la méthode de débogage des procédures stockées dans Oracle. Les procédures stockées constituent une partie très importante d'Oracle et sont souvent utilisées dans des applications pratiques pour améliorer l'efficacité et garantir la stabilité du système. Grâce à l'introduction de cet article, je pense que les lecteurs peuvent mieux comprendre et utiliser les procédures stockées.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal