Maison  >  Article  >  base de données  >  Exemple de procédure stockée Oracle

Exemple de procédure stockée Oracle

WBOY
WBOYoriginal
2023-05-11 11:13:062181parcourir

Une procédure stockée est un programme de base de données précompilé qui contient un ensemble d'instructions SQL et d'instructions de contrôle qui peuvent être appelées en cas de besoin. Cet article présentera les connaissances de base et des exemples de procédures stockées de base de données Oracle.

1. Notions de base des procédures stockées

1.1 Avantages des procédures stockées

Les procédures stockées sont une méthode efficace pour améliorer les performances des bases de données. Ils améliorent l'efficacité des interactions des applications avec la base de données car les instructions SQL sont précompilées côté base de données, ce qui leur permet d'effectuer les opérations plus rapidement lorsqu'elles sont appelées. Cela augmente également la sécurité des données car les procédures stockées peuvent effectuer des vérifications d'autorisation avant de créer et de modifier des données dans la base de données.

1.2 Création de procédures stockées

Vous pouvez utiliser les outils de développement Oracle SQL pour créer des procédures stockées. Oracle SQL Developer et SQL Plus sont des outils couramment utilisés.

Ce qui suit est la syntaxe de base pour créer une procédure stockée :

CREATE [OR REPLACE] PROCEDURE nom_procédure
([nom_paramètre IN/OUT type de données [, nom_paramètre IN/OUT type de données …]])
IS
BEGIN
instruction(s );
EXCEPTION
exception_handler;
END;

Parmi eux, les paramètres sont facultatifs, et la commande '[OR REPLACE]' peut préciser que l'application doit exister et conserver l'état de la procédure stockée.

1.3 Paramètres d'entrée et de sortie des procédures stockées

Les procédures stockées peuvent accepter des paramètres d'entrée et des paramètres de sortie. Les paramètres d'entrée peuvent être utilisés pour effectuer des opérations conditionnelles dans une procédure stockée ou pour transmettre des données à une procédure stockée. Les paramètres de sortie sont utilisés pour renvoyer des informations telles que des valeurs ou des valeurs spécifiées dans le processus de sortie.

Voici comment certains paramètres interagissent :

IN : Les paramètres d'entrée sont utilisés pour transmettre des valeurs aux procédures stockées.

OUT : les paramètres de sortie ne sont pas utilisés pour les données d'entrée, mais peuvent renvoyer des valeurs via des procédures stockées.

INOUT : Les paramètres d'entrée/sortie permettent de passer une valeur en paramètre et peuvent être modifiés via la valeur de retour d'exécution de la procédure stockée.

1.4 Gestion des exceptions des procédures stockées

Les procédures stockées peuvent gérer des exceptions comme les fonctions. Lorsqu'une erreur se produit dans la procédure stockée, vous pouvez configurer une gestion des exceptions. Il peut implémenter la gestion des messages d'erreur personnalisés et utiliser des comportements spécifiés pour soumettre ces erreurs lorsque des erreurs se produisent.

Voici la syntaxe de base pour créer la gestion des exceptions :

DECLARE
exception_name EXCEPTION;
PRAGMA EXCEPTION_INIT (exception_name, error_code);
BEGIN
instruction(s);
EXCEPTION

  WHEN exception_name THEN
     statement(s);

END;

2. instance

Voici quelques exemples courants de procédures stockées :

2.1 Requête simple d'une procédure stockée

Ce qui suit est un exemple de procédure stockée simple, qui affichera les données qui remplissent les conditions du tableau :

CREATE OR REPLACE PROCEDURE get_emp_data
(
ID IN NUMBER,
NAME OUT VARCHAR2,
SALARY OUT NUMBER
)
IS
BEGIN
SELECT Employee_name,salary INTO NAME,SALARY FROM Employees WHERE Employee_id = ID;
END;

L'instance de procédure stockée ci-dessus a besoin à passer 2 paramètres : ID est un paramètre d'entrée obligatoire, qui définit l'ID de l'employé dont les informations doivent être interrogées ; tandis que le nom et le salaire sont des paramètres de sortie, qui acceptent respectivement les valeurs des colonnes correspondantes dans les résultats de la requête ; .

Récupérer la valeur du paramètre de sortie de la procédure stockée Vous pouvez appeler la procédure stockée comme une fonction :

DECLARE
emp_name VARCHAR2(20);
emp_salary NUMBER(10,2);
BEGIN
get_emp_data (100, emp_name,emp_salary);
DBMS_OUTPUT.PUT_LINE('Name: ' || emp_name);
DBMS_OUTPUT.PUT_LINE('Salary: ' || emp_salary);
END;

Dans le code ci-dessus, l'ID du paramètre de procédure stockée est défini à 100, le nom et le salaire de l'employé seront donc renvoyés.

2.2 Opération d'insertion d'une procédure stockée

Ce qui suit est un exemple de procédure stockée, qui implémente la fonction d'insertion d'une ligne de données dans la liste d'employés spécifiée :

CRÉER OU REMPLACER UNE PROCÉDURE add_employee
(
ID EN NUMÉRO,
NOM DANS VARCHAR2,
ÂGE EN NOMBRE,
SALAIRE EN NOMBRE
)
IS
BEGIN
INSÉRER DANS LES VALEURS des employés (ID,NOM,ÂGE,SALAIRE);
COMMIT;
DBMS_OUTPUT.PUT_LINE('Employé ajouté.');
EXCEPTION
QUAND LES AUTRES PUIS

DBMS_OUTPUT.PUT_LINE('Error adding employee.');

FIN ;

L'instance de procédure stockée ci-dessus nécessite 4 paramètres d'entrée : identifiant de l'employé, nom de l'employé, âge de l'employé et salaire de l'employé, qui sont ensuite insérés dans la table "employés". Lorsque l'insertion est réussie, le message « Employé ajouté » s'affichera, et lorsque l'insertion échoue, le message « Erreur lors de l'ajout d'un employé » s'affichera.

2.3 Opération de mise à jour de la procédure stockée

L'exemple suivant fournit la fonction d'augmenter de 10 % le salaire d'un employé avec un ID spécifié dans la table des employés :

CRÉER OU REPLACER LA PROCÉDURE augmentation_employé_salaire
(
ID EN NUMÉRO
)
IS
CURSOR c_employee_salary IS

SELECT salary FROM employees WHERE employee_id = ID;

v_employee_salary NUMBER;
BEGIN
OPEN c_employee_salary;
FETCH c_employee_salary INTO v_employee_salary;
v_employee_salary := v_employee_salary * 1.1;
UPDATE employés SET salaire = v_employee _salary WHERE employé_id = ID;
COMMIT;
DBMS_OUTPUT .PUT_LINE('Le salaire a augmenté. ');
EXCEPTION
QUAND NO_DATA_FOUND ALORS

DBMS_OUTPUT.PUT_LINE('Employee not found.');

QUAND LES AUTRES PUIS

DBMS_OUTPUT.PUT_LINE('Error increasing salary.');

END;

L'exemple de procédure stockée ci-dessus nécessite 1 paramètre d'entrée : ID d'employé, il obtient le salaire de l'employé en fonction de l'ID d'employé, le multiplie par 1,1 et le met à jour dans la table. Une fois mis à jour correctement, le message « salaire augmenté » sera affiché ; lorsque l'employé ne peut pas être trouvé, le message « employé non trouvé » sera affiché ; lorsque d'autres erreurs se produisent, le message « erreur d'augmentation du salaire » sera affiché.

Résumé

Dans cet article, nous avons présenté les bases des procédures stockées de base de données Oracle et quelques exemples. Les procédures stockées peuvent améliorer les performances des bases de données et la sécurité des données, et sont très utiles pour les tâches qui doivent être effectuées fréquemment. Grâce à quelques exemples, vous pourrez mieux comprendre comment créer et utiliser des procédures stockées 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
Article précédent:échec de la connexion OracleArticle suivant:échec de la connexion Oracle