Oracle est un système de base de données largement utilisé et les procédures stockées sont un moyen efficace de traiter les données. Il peut séparer la logique de traitement des données et la logique métier, améliorant ainsi efficacement les performances et la sécurité du système de base de données. Lors de l'utilisation de procédures stockées Oracle, nous devrons peut-être renvoyer certaines données ou valeurs. Les valeurs de retour des procédures stockées Oracle seront discutées ci-dessous.
Les procédures stockées Oracle prennent en charge plusieurs types de valeurs de retour, tels que des entiers, des caractères, des dates, etc. Le type de valeur de retour spécifique doit être déterminé en fonction des exigences commerciales spécifiques. L'exemple suivant prend l'interrogation du salaire mensuel d'un employé pour illustrer comment utiliser les procédures stockées Oracle pour renvoyer un type de données numérique.
CRÉER OU REMPLACER LA PROCÉDURE EMP_SALARY
(
in_emp_id IN NUMBER,
out_salary OUT NUMBER
)
IS
BEGIN
SELECT salaire INTO out_salary FROM employe WHERE employe_id = in_emp_id;
END EMP_SALARY;
La procédure stockée ci-dessus en saisit une via in_emp_id Numéro d'employé, puis renvoie le salaire mensuel de l'employé via out_salary. La procédure stockée déclare deux paramètres, in_emp_id est le paramètre d'entrée et out_salary est le paramètre de sortie. L'instruction SELECT est utilisée dans la procédure stockée pour interroger les résultats, et les résultats de la requête sont affectés au paramètre de sortie out_salary.
Lors du développement de procédures stockées, vous devez prendre en compte les erreurs possibles, telles que des paramètres d'entrée vides ou des résultats de requête vides. Dans les procédures stockées, ces erreurs peuvent être bien gérées à l'aide de l'instruction EXCEPTION ou de la procédure RAISE_APPLICATION_ERROR.
CRÉER OU REMPLACER LA PROCÉDURE EMP_SALARY
(
in_emp_id IN NUMBER,
out_salary OUT NUMBER
)
IS
emp_salary NUMBER(18,2);
BEGIN
SELECT INTO emp_salary FROM Employee WHERE employe_id = in_ emp_id;
SI emp_salary EST NULL THEN
RAISE_APPLICATION_ERROR(-20000, 'The employee salary is null.');
END IF;
out_salary := emp_salary;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001, 'The employee salary could not be retrieved.');
END EMP_SALARY;
La procédure stockée ci-dessus ajoute une instruction pour déterminer si emp_salary est vide lors de l'interrogation. Si emp_salary est vide, un message d'erreur personnalisé sera généré. Si d'autres erreurs se produisent, un message d'erreur par défaut sera généré. Lors du développement de procédures stockées, l'utilisation d'un bon mécanisme de gestion des erreurs peut améliorer la robustesse et la fiabilité du programme.
Dans les procédures stockées Oracle, en plus de renvoyer des types de données individuels, vous pouvez également renvoyer des ensembles de résultats. Les procédures stockées peuvent renvoyer des résultats dans un ensemble de données, ce qui peut simplifier l'implémentation du code lorsque plusieurs ensembles de résultats doivent être utilisés. Ce qui suit prendra un morceau de code comme exemple pour montrer comment utiliser les procédures stockées Oracle pour renvoyer des ensembles de résultats :
CREATE OR REPLACE PROCEDURE query_blogs
(
out_blogs OUT SYS_REFCURSOR
) AS
BEGIN
OPEN out_blogs FOR SELECT * FROM blog ;
END query_blogs;
Dans ce code, le type SYS_REFCURSOR est utilisé comme type de paramètre de sortie, qui peut être utilisé pour renvoyer les résultats de l'ensemble de données. Utilisez l'instruction OPEN dans la procédure stockée pour ouvrir le jeu de résultats et utilisez l'instruction de requête SELECT pour obtenir le jeu de résultats qui doit être renvoyé.
Les procédures stockées sont une partie importante de la base de données Oracle. Lors du développement de procédures stockées, vous devez prendre en compte non seulement l'implémentation fonctionnelle de la procédure stockée, mais également des valeurs de retour raisonnables et une gestion des erreurs. Dans le même temps, l'utilisation de procédures stockées peut améliorer efficacement les performances et la sécurité du système de base de données, réduire la duplication du travail lors de l'écriture du même code de programme et améliorer l'efficacité globale de l'application.
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!