Maison > Article > Opération et maintenance > Parlons des procédures stockées de la base de données Oracle
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ù :
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!