logo

Présentation de PL/SQL

PL/SQL est un langage structuré en blocs qui permet aux développeurs de combiner la puissance de SQL avec des instructions procédurales. Toutes les instructions d'un bloc sont transmises au moteur Oracle en même temps, ce qui augmente la vitesse de traitement et diminue le trafic.

Bases de PL/SQL

  • •PL/SQL signifie Procedural Language extensions du langage de requête structuré (SQL).
  • PL/SQL est une combinaison de SQL et des fonctionnalités procédurales des langages de programmation.
  • Oracle utilise un moteur PL/SQL pour traiter les instructions PL/SQL.
  • PL/SQL inclut des éléments de langage procédural tels que des conditions et des boucles. Il permet la déclaration de constantes et de variables, de procédures et de fonctions, de types et de variables de ces types et déclencheurs.

Inconvénients de SQL :



  • SQL ne fournit pas aux programmeurs une technique de vérification des conditions, de bouclage et de branchement.
  • Les instructions SQL sont transmises au moteur Oracle une par une, ce qui augmente le trafic et diminue la vitesse.
  • SQL n'a aucune possibilité de vérifier les erreurs lors de la manipulation des données.

Caractéristiques de PL/SQL :

  1. PL/SQL est essentiellement un langage procédural, qui fournit les fonctionnalités de prise de décision, d'itération et bien d'autres fonctionnalités des langages de programmation procéduraux.
  2. PL/SQL peut exécuter un certain nombre de requêtes en un seul bloc à l'aide d'une seule commande.
  3. On peut créer une unité PL/SQL telle que des procédures, des fonctions, des packages, des déclencheurs et des types, qui sont stockés dans la base de données pour être réutilisés par les applications.
  4. PL/SQL fournit une fonctionnalité pour gérer l'exception qui se produit dans le bloc PL/SQL appelée bloc de gestion des exceptions.
  5. Les applications écrites en PL/SQL sont portables sur le matériel informatique ou le système d'exploitation sur lequel Oracle est opérationnel.
  6. PL/SQL Offre une vérification approfondie des erreurs.

Différences entre SQL et PL/SQL :

SQL PL/SQL
SQL est une requête unique utilisée pour effectuer des opérations DML et DDL. PL/SQL est un bloc de codes utilisé pour écrire l'intégralité des blocs/procédures/fonctions du programme, etc.
Il est déclaratif et définit ce qui doit être fait plutôt que la manière dont les choses doivent être faites. PL/SQL est une procédure qui définit comment les choses doivent être faites.
Exécuté comme une seule instruction. Exécuter dans son ensemble.
Principalement utilisé pour manipuler des données. Principalement utilisé pour créer une application.
Ne peut pas contenir de code PL/SQL. Il s'agit d'une extension de SQL, elle peut donc contenir du SQL à l'intérieur.

Structure du bloc PL/SQL :



PL/SQL étend SQL en ajoutant des constructions trouvées dans les langages procéduraux, ce qui donne lieu à un langage structurel plus puissant que SQL. L'unité de base en PL/SQL est un bloc. Tous les programmes PL/SQL sont constitués de blocs qui peuvent être imbriqués les uns dans les autres.

Généralement, chaque bloc effectue une action logique dans le programme. Un bloc a la structure suivante :

 DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END;>
  • La section Déclarer commence par DÉCLARER mot-clé dans lequel des variables, des constantes, des enregistrements comme curseurs peuvent être déclarés et stockent temporairement les données. Il s'agit essentiellement de la définition d'identifiants PL/SQL. Cette partie du code est facultative.
  • La section d'exécution commence par COMMENCER et se termine par FIN mot-clé. Il s’agit d’une section obligatoire et ici la logique du programme est écrite pour effectuer n’importe quelle tâche comme des boucles et des instructions conditionnelles. Il supporte tout DML commandes, DDL commandes et fonctions intégrées SQL*PLUS également.
  • La section des exceptions commence par EXCEPTION mot-clé.Cette section est facultative et contient des instructions qui sont exécutées lorsqu'une erreur d'exécution se produit. Toutes les exceptions peuvent être traitées dans cette section.

Identifiants PL/SQL

Il existe plusieurs identifiants PL/SQL tels que des variables, des constantes, des procédures, des curseurs, des déclencheurs etc.



  1. Variables : Comme plusieurs autres langages de programmation, les variables en PL/SQL doivent être déclarées avant leur utilisation. Ils doivent également avoir un nom et un type de données valides. Syntaxe pour la déclaration des variables :
variable_name datatype [NOT NULL := value ];>
  1. Exemple pour montrer comment déclarer des variables en PL/SQL :

C

Oops




SQL>DÉFINIR LA SORTIE DU SERVEUR SUR ;> SQL>DÉCLARER> >var1 INTEGER;> >var2 REAL;> >var3 varchar2(20) ;> BEGIN> >null;> END;> />

>

>

  1. Sortir:
PL/SQL procedure successfully completed.>
  1. Explication:
    • RÉGLER LA SORTIE DU SERVEUR SUR : Il permet d'afficher le buffer utilisé par le dbms_output.
    • var1 ENTIER : C'est la déclaration d'une variable, nommée var1 qui est de type entier. Il existe de nombreux autres types de données qui peuvent être utilisés comme float, int, real, smallint, long, etc. Il prend également en charge les variables utilisées dans SQL telles que NUMBER (prec, scale), varchar, varchar2, etc.
    • Procédure PL/SQL terminée avec succès. : Il s'affiche lorsque le code est compilé et exécuté avec succès.
    • Barre oblique (/) après FIN ; : La barre oblique (/) indique à SQL*Plus d'exécuter le bloc.
    • Opérateur d'affectation (:=) : Il est utilisé pour attribuer une valeur à une variable.
  2. Affichage de la sortie : Les sorties sont affichées à l'aide de DBMS_OUTPUT qui est un package intégré qui permet à l'utilisateur d'afficher la sortie, les informations de débogage et d'envoyer des messages à partir de blocs, sous-programmes, packages et déclencheurs PL/SQL. Voyons un exemple pour voir comment afficher un message en utilisant PL/SQL :

C




SQL>DÉFINIR LA SORTIE DU SERVEUR SUR ;> SQL>DÉCLARER> >var varchar2(40) :=>'I love GeeksForGeeks'> ;> >BEGIN> >dbms_output.put_line(var);> >END;> >/>

>

>

  1. Sortir:
I love GeeksForGeeks PL/SQL procedure successfully completed.>
  1. Explication:
    • dbms_output.put_line : Cette commande est utilisée pour diriger la sortie PL/SQL vers un écran.
  2. Utiliser les commentaires : Comme dans de nombreux autres langages de programmation, en PL/SQL également, des commentaires peuvent être insérés dans le code, ce qui n'a aucun effet sur le code. Il existe deux syntaxes pour créer des commentaires en PL/SQL :
    • Commentaire sur une seule ligne : Pour créer un commentaire sur une seule ligne, le symbole– –est utilisé.
    • Commentaire sur plusieurs lignes : Pour créer des commentaires s'étalant sur plusieurs lignes, le symbole/*et*/est utilisé.
  3. Prendre l'entrée de l'utilisateur : Tout comme dans d'autres langages de programmation, en PL/SQL également, nous pouvons prendre les entrées de l'utilisateur et les stocker dans une variable. Voyons un exemple pour montrer comment prendre en compte les commentaires des utilisateurs en PL/SQL :

C




SQL>DÉFINIR LA SORTIE DU SERVEUR SUR ;> SQL>DÉCLARER> >-- taking input>for> variable a> >a number := &a;> > >-- taking input>for> variable b> >b varchar2(30) := &b;> >BEGIN> >null;> >END;> >/>

python // opérateur

>

>

  1. Sortir:
Enter value for a: 24 old 2: a number := &a; new 2: a number := 24; Enter value for b: 'GeeksForGeeks' old 3: b varchar2(30) := &b; new 3: b varchar2(30) := 'GeeksForGeeks'; PL/SQL procedure successfully completed.>
  1. (***) Voyons un exemple sur PL/SQL pour démontrer tous les concepts ci-dessus dans un seul bloc de code.

C




--PL/SQL code to print sum of two numbers taken from the user.> SQL>DÉFINIR LA SORTIE DU SERVEUR SUR ;> SQL>DÉCLARER> > >-- taking input>for> variable a> >a integer := &a ;> > >-- taking input>for> variable b> >b integer := &b ;> >c integer ;> >BEGIN> >c := a + b ;> >dbms_output.put_line(>'Sum of '>||a||>' and '>||b||>' is = '>||c);> >END;> >/>

>

>

Enter value for a: 2 Enter value for b: 3 Sum of 2 and 3 is = 5 PL/SQL procedure successfully completed.>

Environnement d'exécution PL/SQL :

Le moteur PL/SQL réside dans le moteur Oracle. Le moteur Oracle peut traiter non seulement une seule instruction SQL, mais également plusieurs blocs d'instructions. L'appel au moteur Oracle ne doit être effectué qu'une seule fois pour exécuter un nombre quelconque d'instructions SQL si ces instructions SQL sont regroupés dans un bloc PL/SQL.