Bloc PL/SQL : structure, syntaxe et exemple anonyme

⚡ Résumé intelligent

Un bloc PL/SQL est l'unité de base qui regroupe les instructions PL/SQL et SQL afin qu'elles s'exécutent ensemble plutôt que ligne par ligne. Chaque bloc comprend une déclaration, une section d'exécution et une section de gestion des exceptions ; les blocs peuvent être anonymes ou nommés.

  • 🧱 Idée de base : Code est regroupé dans un bloc qui s'exécute comme un tout, mêlant logique procédurale et SQL.
  • 📝 Section Déclaration : Facultatif ; déclare les variables, les curseurs, les exceptions et les sous-programmes utilisés dans le bloc.
  • ▶ ️ Section d'exécution : Obligatoire ; commence par BEGIN et contient au moins une instruction exécutable.
  • 🛡️ Section des exceptions : Facultatif ; commence par EXCEPTION et gère les erreurs d'exécution.
  • 🏷️ Deux types: Les blocs anonymes sont sans nom et exécutés une seule fois ; les blocs nommés sont stockés en tant qu’objets de base de données.
  • (I.e. Blocs nommés : Les procédures et les fonctions sont des blocs nommés qui peuvent être appelés de manière répétée.
  • ⛔ Terminateur : La commande END ferme le bloc, et une barre oblique l'envoie au compilateur.

Structure et syntaxe des blocs PL/SQL

Qu'est-ce qu'un bloc PL/SQL ?

En PL/SQL, le code n'est pas exécuté sur une seule ligne ; il est toujours exécuté par groupe.ping Le code est organisé en un seul élément appelé bloc. Ce tutoriel vous permettra de découvrir ces blocs.

Les blocs contiennent des instructions PL/SQL et SQL. Toutes ces instructions sont exécutées en bloc et non une par une.

Structure de bloc

Les blocs PL/SQL possèdent une structure prédéfinie dans laquelle le code est regroupé. Voici les différentes sections d'un bloc PL/SQL :

  1. Section Déclaration
  2. Section d'exécution
  3. Section Gestion des exceptions

L'image ci-dessous illustre les différentes sections d'un bloc PL/SQL et leur ordre.

sections et ordre des blocs PL/SQL

Section de déclaration

Il s'agit de la première section d'un bloc PL/SQL ; elle est facultative. C'est dans cette section que sont déclarées les variables, les curseurs, les exceptions, les sous-programmes, les instructions pragma et les collections nécessaires au bloc. Voici quelques autres caractéristiques de cette partie :

  • Cette section est facultative et peut être ignorée si aucune déclaration n'est nécessaire.
  • Elle devrait constituer la première section d'un bloc PL/SQL, le cas échéant.
  • Pour les déclencheurs et les blocs anonymes, la déclaration commence par le mot-clé « DECLARE ». Ce mot-clé est absent pour les autres sous-programmes ; dans ce cas, la partie suivant le nom du sous-programme marque la section de déclaration.
  • Elle doit toujours être suivie de la section d'exécution.

Section d'exécution

La partie exécution est la partie principale et obligatoire qui exécute effectivement le code écrit à l'intérieur. PL / SQL Ce bloc attend des instructions exécutables ; il ne peut pas être vide et doit contenir au moins une ligne exécutable valide. Voici quelques autres caractéristiques de cette partie :

  • Il peut contenir à la fois du code PL/SQL et du code SQL.
  • Il peut contenir un ou plusieurs blocs imbriqués.
  • Cela commence par le mot-clé « BEGIN ».
  • Il doit être suivi soit de « END », soit de la section de gestion des exceptions, si elle est présente.

Section de gestion des exceptions

Les exceptions sont des erreurs inévitables qui surviennent lors de l'exécution, et il est nécessaire de les gérer. Oracle Il comporte une section de gestion des exceptions organisée en blocs. Cette section peut également contenir des instructions PL/SQL et est facultative.

  • C'est dans cette section que sont gérées les exceptions levées dans le bloc d'exécution.
  • Il s'agit de la dernière partie du bloc PL/SQL.
  • Le contrôle de cette section ne peut jamais revenir au bloc d'exécution.
  • Cela commence par le mot-clé « EXCEPTION ».
  • Il doit toujours être suivi du mot-clé « FIN ».

Le mot-clé « END » marque la fin du bloc PL/SQL.

Syntaxe des blocs PL/SQL

Vous trouverez ci-dessous la syntaxe de la structure des blocs PL/SQL.

Syntaxe des blocs PL/SQL

DECLARE --optional
<declarations>

BEGIN --mandatory
<executable statements. At least one executable statement is mandatory>

EXCEPTION --optional
<exception handles>

END; --mandatory
/

À noter: Un bloc doit toujours être suivi d'un '/', qui envoie au compilateur des informations sur la fin du bloc.

Types de blocs PL/SQL

Les blocs PL/SQL sont principalement de deux types :

  1. Blocs anonymes
  2. Blocs nommés

Les deux sont comparés brièvement ci-dessous avant d'être décrits individuellement.

Aspect Bloc anonyme Bloc nommé
A un nom Non Oui
Stocké dans la base de données Non Oui, en tant qu'objet
Commence avec DÉCLARER ou COMMENCER CREATE
Réutilisable Même session uniquement Appelable à tout moment

Blocage anonyme

Les blocs anonymes sont des blocs PL/SQL auxquels aucun nom n'est attribué. Ils doivent être créés et utilisés dans la même session car ils ne sont pas stockés sur le serveur en tant qu'objets de base de données.

Comme elles ne sont pas stockées dans la base de données, elles ne nécessitent pas d'étape de compilation séparée. Elles sont écrites et exécutées directement, la compilation et l'exécution ayant lieu dans un seul processus. Quelques autres caractéristiques :

  • Ces blocs n'ont pas de nom de référence.
  • Ils commencent par le mot-clé « DÉCLARER » ou « COMMENCER ».
  • Comme elles n'ont pas de nom de référence, elles ne peuvent pas être stockées pour une utilisation ultérieure et doivent être créées et exécutées dans la même session.
  • Ils peuvent appeler d'autres blocs nommés, mais un appel à un bloc anonyme est impossible, car celui-ci ne possède aucune référence.
  • Ils peuvent contenir un bloc imbriqué, nommé ou anonyme, et ils peuvent également être imbriqués à l'intérieur de n'importe quel bloc.
  • Ils peuvent comporter les trois sections, dont la section d'exécution est obligatoire et les deux autres facultatives.

Blocs nommés

Les blocs nommés possèdent un nom spécifique et unique. Ils sont stockés en tant qu'objets de base de données sur le serveur, ce qui permet de les référencer et de les utiliser tant qu'ils sont présents. Le processus de compilation des blocs nommés s'effectue séparément lors de leur création en tant qu'objets de base de données. Quelques autres caractéristiques :

  • Ces blocs peuvent être appelés depuis d’autres blocs.
  • La structure du bloc est identique à celle d'un bloc anonyme, à ceci près qu'il ne commence jamais par « DECLARE ». Il commence toujours par « CREATE », ce qui indique au compilateur de le créer en tant qu'objet de base de données.
  • Ces blocs peuvent être imbriqués dans d'autres blocs et peuvent également contenir des blocs imbriqués.
  • Les blocs nommés sont essentiellement de deux types :
  1. Procédure
  2. Fonction

Vous pouvez en apprendre davantage sur ces blocs nommés dans le guide de procédures et fonctions.

FAQ

Seule la section d'exécution, qui commence par BEGIN et se termine par END, est requise. Les sections de déclaration et de gestion des exceptions sont facultatives et peuvent être omises si elles ne sont pas nécessaires.

Un bloc anonyme n'a pas de nom, n'est pas stocké et s'exécute dans la même session. Un bloc nommé, tel qu'une procédure ou une fonction, est stocké en tant qu'objet de base de données et peut être appelé à plusieurs reprises.

Dans des outils comme SQL*Plus, la barre oblique sur une ligne distincte indique au compilateur que le bloc est terminé et doit être exécuté. Sans elle, l'outil continue d'attendre des données supplémentaires.

Oui. L'IA peut encapsuler la logique dans un en-tête CREATE PROCEDURE, ajouter des paramètres et positionner les déclarations. Testez le résultat, car une version enregistrée peut nécessiter des modes de paramètres explicites et une gestion des erreurs.

Oui. Les sections de déclaration et d'exception sont indépendantes. Un bloc peut commencer par BEGIN, ignorer les déclarations et inclure une section EXCEPTION avant END pour intercepter les erreurs d'exécution.

Résumez cet article avec :