Maison  >  Article  >  Opération et maintenance  >  Parlons des procédures stockées de la base de données Oracle

Parlons des procédures stockées de la base de données Oracle

PHPz
PHPzoriginal
2023-04-17 10:28:44733parcourir

Dans Oracle Database, une procédure stockée est un bloc de code réutilisable qui peut être appelé par d'autres programmes ou applications. Les procédures stockées peuvent recevoir des paramètres, exécuter plusieurs instructions SQL, traiter et calculer des données, exécuter un certain morceau de code en boucle, etc. Une procédure stockée se compose d'une ou plusieurs instructions SQL et, en une seule exécution, plusieurs instructions SQL peuvent être exécutées sans avoir à interagir de manière répétée avec la base de données.

Les procédures stockées sont souvent utilisées dans le cadre de transactions complexes pour garantir l'atomicité et la cohérence des transactions. Si vous exécutez plusieurs instructions SQL au sein d'une transaction complexe, des erreurs ou des résultats incohérents peuvent survenir. Toutefois, si vous combinez ces instructions SQL dans une procédure stockée, vous pouvez garantir que ces instructions sont exécutées de manière atomique, c'est-à-dire que toutes les instructions sont exécutées avec succès ou que toutes les instructions sont annulées. De plus, les procédures stockées peuvent également améliorer l'efficacité de l'exécution et éviter la surcharge liée à l'établissement et à la fermeture de connexions à chaque fois qu'une instruction SQL est exécutée.

La syntaxe de création d'une procédure stockée est la suivante :

CREATE [OR REPLACE] PROCEDURE procedure_name
(parameter1 [IN | OUT | IN OUT] type1,
 parameter2 [IN | OUT | IN OUT] type2,
 ...
 parameterN [IN | OUT | IN OUT] typeN)
IS
[local_variable_declarations;]

BEGIN
 SQL_statements;
 [EXCEPTION
   exception_section;]

END [procedure_name];

Où :

  • procedure_name : Le nom de la procédure stockée.
  • paramètre1, paramètre2, … paramètreN : Paramètres de la procédure stockée.
  • type1, type2, … typeN : Type de données du paramètre.
  • local_variable_declarations : déclaration de variables locales dans les procédures stockées, utilisées pour le calcul ou le traitement dans les procédures stockées.
  • SQL_statements : exécution réelle d'instructions SQL par lots de procédures stockées.
  • exception_section : gestionnaire d'exceptions dans la procédure stockée.

Ce qui suit est un exemple d'utilisation d'une procédure stockée :

CREATE OR REPLACE PROCEDURE get_all_employees
IS
BEGIN
  SELECT * FROM employees;
END;

Cette procédure stockée s'appelle get_all_employees, n'a aucun paramètre et son objectif est de renvoyer tous les enregistrements des employés. Lorsque cette procédure stockée est exécutée, tous les enregistrements des employés seront renvoyés.

Dans les procédures stockées, vous pouvez également utiliser des fonctions telles que des instructions conditionnelles, des instructions de boucle, des curseurs et la gestion des exceptions. Voici un exemple plus complexe :

CREATE OR REPLACE PROCEDURE calculate_salary
(
  in_emp_id IN employees.employee_id%TYPE,
  out_salary OUT NUMBER
)
IS
  emp_name employees.last_name%TYPE;
  emp_salary employees.salary%TYPE;
BEGIN
  SELECT last_name, salary INTO emp_name, emp_salary
  FROM employees
  WHERE employee_id = in_emp_id;

  IF emp_salary > 5000 THEN
    out_salary := emp_salary * 1.2;
  ELSE
    out_salary := emp_salary * 1.1;
  END IF;

  DBMS_OUTPUT.PUT_LINE('员工姓名: ' || emp_name);
  DBMS_OUTPUT.PUT_LINE('原薪资: ' || emp_salary);
  DBMS_OUTPUT.PUT_LINE('计算后薪资: ' || out_salary);
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.PUT_LINE('员工ID未找到。');
END;

Les paramètres de cette procédure stockée incluent le paramètre d'entrée Employee_id et le paramètre de sortie salaire. La fonction de la procédure stockée est de récupérer les enregistrements des employés en fonction du paramètre Employee_id, de calculer le salaire de l'employé et d'attribuer une valeur au paramètre out_salary. Si l'employé_id spécifié n'existe pas, la procédure stockée lèvera une exception.

Les procédures stockées améliorent non seulement l'efficacité et la sécurité de la base de données, mais rendent également les applications plus modulaires et augmentent la réutilisabilité du code. Les procédures stockées peuvent être créées et enregistrées dans la base de données et mises à la disposition de toutes les applications. De plus, les procédures stockées peuvent également être exécutées régulièrement pour effectuer certaines tâches en arrière-plan, telles que la sauvegarde et l'archivage des données.

Dans l'ensemble, les procédures stockées de base de données Oracle sont un outil puissant et flexible qui peut être utilisé pour gérer des comportements et des transactions de bases de données complexes. Étant donné que les procédures stockées peuvent être réutilisées, l'efficacité de l'ensemble du système de base de données est naturellement améliorée et les performances de la base de données sont améliorées. Par conséquent, apprendre à écrire des procédures stockées sera d’une grande aide dans votre évolution de carrière.

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:Comment supprimer Oracle10gArticle suivant:Comment supprimer Oracle10g