Maison >base de données >Oracle >Quelles sont les fonctions des procédures stockées Oracle

Quelles sont les fonctions des procédures stockées Oracle

青灯夜游
青灯夜游original
2022-02-24 17:58:414528parcourir

Les fonctions des procédures stockées Oracle sont : 1. Simplifier les opérations complexes et réduire les coûts globaux de développement ; 2. Augmenter l'indépendance des données ; 3. Peut réduire efficacement la probabilité d'erreurs et améliorer la sécurité ;

Quelles sont les fonctions des procédures stockées Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.

Les procédures stockées Oracle sont souvent utilisées dans le processus de développement de bases de données lui-même. En tant que compétence essentielle pour un développeur de bases de données, elles jouent un rôle irremplaçable dans les instructions SQL. La procédure dite stockée est un module de programme stocké dans la base de données pour exécuter une certaine fonction commerciale. Il s'agit d'une série de blocs de code composés d'un ou plusieurs blocs de code PL/SQL ou instructions SQL.

Le rôle (avantages) des procédures stockées :

  • Simplifier les opérations complexes et réduire les coûts globaux de développement.

    Les procédures stockées encapsulent les blocs PL/SQL de logique métier réellement exécutés et plusieurs instructions SQL dans des procédures stockées. Les autres développeurs n'ont qu'à appeler les procédures écrites pour obtenir les résultats souhaités sans re-comprendre l'entreprise. Extrayez l’affaire et faites-la rédiger par des personnes spécialisées.

  • Augmentez l'indépendance des données.

    Sa fonction est similaire à celle d'une vue. Si les données de base de la table changent, il suffit de modifier le code au passage sans modifier le programme appelant. Cela élimine le besoin pour les programmes utilisateur d'écrire du code directement en face des données de base. Cela rend le code plus cohérent et moins couplé.

  • Améliorez la sécurité.

    L'utilisation de procédures stockées réduit efficacement les risques d'erreurs. Si vous n'utilisez pas de procédures stockées pour réaliser une certaine opération, vous devrez peut-être exécuter plusieurs instructions SQL distinctes, et un trop grand nombre d'étapes d'exécution peut entraîner une probabilité d'erreurs plus élevée.

  • Améliorez les performances.

    Dans le processus de développement actuel, le développement d'une fonction de module métier peut nécessiter l'utilisation de plusieurs instructions SQL et de plusieurs blocs de programme PL/SQL pour résoudre le problème. En l'écrivant dans une procédure, Oracle n'a besoin de la compiler qu'une seule fois et elle peut être appelée à tout moment ultérieurement. Si vous n'utilisez pas de procédures et écrivez directement de nombreuses instructions SQL dans le programme, vous devrez le compiler plusieurs fois et vous connecter plusieurs fois à la base de données, ce qui réduira considérablement les performances.

Syntaxe de création d'une procédure stockée Oracle :

create [or replace] procedure 过程名
( p1 in|out datatype,
  p2 in|out datatype,
  ...
  pn in|out datatype
    
) is 
    
    ....--声明部分
    begin
    
    ....--过程体
    end;

Analyse grammaticale :

1. Le mot-clé procédure est la commande permettant de créer une procédure stockée.

2. créer [ou remplacer] : si la procédure stockée existe déjà, écrasez et remplacez la procédure d'origine.

3. in|out : La procédure stockée a deux options de paramètres : les paramètres d'entrée et les paramètres de sortie in représentent les paramètres d'entrée, et out représente les paramètres de sortie. Lors de l'utilisation du processus, les paramètres d'entrée doivent avoir des variables correspondantes à transmettre. Les paramètres d'entrée et de sortie doivent avoir des variables correspondantes à recevoir.

4. datatype indique le type de données correspondant aux variables paramètres entrantes et sortantes.

5. est suivi des variables déclarées utilisées dans le processus.

6. Begin...end est écrit au milieu des opérations spécifiques de la procédure stockée.

Exemple 1. Créez une procédure stockée pour calculer le classement des étudiants dans un certain cours de la classe. Utilisez la procédure stockée pour calculer et renvoyer le classement correspondant. Le code est le suivant :

create or replace procedure sp_score_pm(
p_in_stuid in varchar2,--学号
p_in_courseid in  varchar2, --课程ID
p_out_pm out number--排名
)
is
ls_score number:=0;
ls_pm number:=0;
begin
  --获取该学生的成绩
  select t.score into ls_score from score t
   where t.stuid = p_in_stuid
     and t.courseid = p_in_courseid;
  --获取成绩比该学生高的人数
  select count(1) into ls_pm from score t
   where t.courseid = p_in_courseid
   and  t.score>ls_score;
   --得到该学生的成绩排名
   p_out_pm:=ls_pm+1;
exception
  when no_data_found  then
     dbms_output.put_line('该学生的课程:'||p_in_courseid|| '的成绩在成绩表中找不到');
end;

Grâce au code ci-dessus, nous. peut utiliser directement la fenêtre SQL Exécuter la compilation.Une fois la compilation réussie, nous pouvons appeler la procédure stockée pour obtenir le classement des notes de cours correspondant des étudiants.La procédure stockée nécessite une affectation de paramètres entrants et sortants, afin que nous puissions la tester via le. Bloc d'instructions PL/SQL. Le code est le suivant :

declare
ls_pm number;--排名
begin
  --SC201801001
  sp_score_pm('SC201801001','R20180101',ls_pm);
  dbms_output.put_line('学号:SC201801001,课程号:R20180101 的成绩排名是:'||ls_pm);
  sp_score_pm('SC201801001','R20180102',ls_pm);
  dbms_output.put_line('学号:SC201801001,课程号:R20180102 的成绩排名是:'||ls_pm);
  --SC201801002
  sp_score_pm('SC201801002','R20180101',ls_pm);
  dbms_output.put_line('学号:SC201801002,课程号:R20180101 的成绩排名是:'||ls_pm);
  sp_score_pm('SC201801002','R20180102',ls_pm);
  dbms_output.put_line('学号:SC201801002,课程号:R20180102 的成绩排名是:'||ls_pm);
  
end;

Les résultats sont les suivants :

Quelles sont les fonctions des procédures stockées Oracle

Tutoriel recommandé : "Tutoriel 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