Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Comprendre PL/SQL pour Structurer Votre Code SQL
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Bases de donnéesDéveloppement

Comprendre PL/SQL pour Structurer Votre Code SQL

L'Équipe Alphorm Par L'Équipe Alphorm 21 novembre 2024
Partager
Partager

La gestion de la logique complexe en SQL peut être limitée sans structures procédurales.

Ces limitations entraînent souvent des inefficacités et des difficultés lors de la création de scripts SQL avancés.

PL/SQL est une extension qui enrichit SQL avec des structures de contrôle et des blocs logiques, améliorant ainsi la programmation sur Oracle.

Table de matière
Variables en PL/SQL OracleStructures de contrôle en PL/SQLProcédures et fonctions PL/SQLLangage PL/SQL structuré en blocsArchitecture Oracle PL/SQLProgramme PL/SQL : StructureUtilisation de DBMS_OUTPUTExercice : Bloc PL/SQL pratiqueFAQConclusion

Formation Le langage PL/SQL : Le Guide Complet

Maîtriser le langage SQL en environnement SGBDR. SQL n'aura plus de secrets pour vous !

Découvrir cette formation

Le langage PL/SQL (Procedural Language/Structured Query Language) est une extension procédurale du SQL dans les bases de données Oracle. Il permet d’enrichir le SQL avec des structures de contrôle, des boucles, des conditions, et des blocs de code complexes.

Logo PL/SQL sur base de données
Question : Quelles sont les différences majeures entre le SQL standard et le PL/SQL en termes de programmation ?

Le PL/SQL ajoute des fonctionnalités procédurales à SQL, permettant d’organiser le code en blocs logiques, avec des variables et des structures de contrôle.

Variables en PL/SQL Oracle

Le PL/SQL permet de déclarer des variables pour stocker des valeurs temporaires lors de l’exécution du programme. Voilà la syntaxe pour déclarer une variable :

				
					
 DECLARE
my_variable VARCHAR2(50);
BEGIN
my_variable := 'Bonjour le monde alphorm’;
END;

				
			

Structures de contrôle en PL/SQL

Les structures de contrôle et les boucles en PL/SQL sont essentielles pour définir le flux d’exécution du code, permettant de prendre des décisions conditionnelles et de répéter des actions en fonction des besoins.

  • Conditions avec If-Then-Else :

Cette structure conditionnelle exécute une action en fonction de la valeur d’une variable ou d’une condition :

				
					
 IF my_variable = 'alphorm' THEN
-- action
ELSE
-- autre action
END IF;

				
			

Dans cet exemple, si my_variable est égal à ‘alphorm ‘, une action spécifique sera exécutée. Sinon, une autre action sera réalisée. Ce type de structure permet de contrôler le comportement du code en fonction des valeurs ou des états.

  • Boucles pour répéter des actions :

Les boucles permettent d’exécuter une ou plusieurs actions plusieurs fois. Voici un exemple avec une boucle FOR qui répète l’action 10 fois :

				
					
 FOR i IN 1..10 LOOP
-- action répétée
END LOOP;

				
			

Cette structure est particulièrement utile pour automatiser des tâches répétitives et gérer des données de manière séquentielle.

Procédures et fonctions PL/SQL

Les procédures, fonctions, triggers et packages sont des éléments de PL/SQL qui permettent d’organiser, structurer et réutiliser le code de manière modulaire, facilitant ainsi la maintenance et la lisibilité.

  • Procédures :Permettent d’organiser et réutiliser le code sous forme de routines.
				
					
 PROCEDURE my_procedure IS
BEGIN
-- actions de la procédure
END;

				
			
  • Fonctions :Similaires aux procédures, mais retournent une valeur.
				
					
 FUNCTION my_function RETURN NUMBER IS
BEGIN
RETURN 10;
END;

				
			
  • Triggers :Exécutent automatiquement du code PL/SQL suite à des événements spécifiques (comme l’insertion de données dans une table).
  • Packages :Permettent de regrouper des procédures et des fonctions pour faciliter la gestion du code.
Erreur Courante : Ne pas gérer les erreurs dans les procédures ou fonctions peut provoquer des interruptions dans l’exécution des scripts en cas de bug.

Langage PL/SQL structuré en blocs

Le PL/SQL est structuré en blocs d’instructions logiques.

Blocs externes : Il existe des blocs anonymes ou stockés . Un bloc anonyme est un code qui n’est pas sauvegardé dans la base de données, tandis qu’un bloc stocké (procédures, fonctions ou triggers) est enregistré dans la base de données.

  • Bloc anonyme :
				
					
 DECLARE
my_variable NUMBER;
BEGIN
my_variable := 100;
END;

				
			
  • Procédure stockée :
				
					
 CREATE OR REPLACE PROCEDURE my_procedure IS
BEGIN
-- action
END my_procedure;

				
			

Architecture Oracle PL/SQL

L’architecture PL/SQL se compose de plusieurs éléments clés :

  • Moteur PL/SQL :Il est responsable de l’exécution du code PL/SQL sur le serveur Oracle.
  • Blocs de code :Les blocs PL/SQL sont traités par le moteur PL/SQL avant d’interagir avec la base de données.
  • Gestion des exceptions :L’architecture PL/SQL comprend un mécanisme pour capturer et gérer les erreurs ou exceptions qui surviennent lors de l’exécution du code.
Diagramme fonctionnement PL/SQL Oracle

Programme PL/SQL : Structure

Un programme PL/SQL est composé de trois parties principales :

Partie
Description
Déclaration (DECLARE)
Partie où sont déclarées les variables, constantes, et autres éléments nécessaires.
Exécution (BEGIN)
Partie principale où s’écrit la logique du programme, incluant les instructions et opérations.
Gestion des exceptions (EXCEPTION)
Partie où les erreurs ou exceptions sont capturées et gérées pour éviter les interruptions du programme.

Voici donc un exemple de programme qui affiche la valeur d’une variable et qui est composédes 3 parties DECLARE , BEGIN et EXCEPTION :

				
					
 SET SERVEROUTPUT ON;
DECLARE
my_variable NUMBER;
BEGIN
my_variable := 100;
DBMS_OUTPUT.PUT_LINE('Valeur : ' || my_variable);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Une erreur est survenue.');
END;

				
			

Et voici son résultat lors de son exécution :

Exécution de la procédure PL/SQL terminée avec succès.
Astuce Pratique : Toujours inclure une partie EXCEPTION pour gérer les erreurs, même dans les programmes simples.

Utilisation de DBMS_OUTPUT

La procédure DBMS_OUTPUT.PUT_LINE permet d’afficher du texte dans la console, utile pour déboguer ou voir les résultats intermédiaires d’un programme, par exemple :

				
					
 BEGIN
DBMS_OUTPUT.PUT_LINE('Bonjour PL/SQL');
END;

				
			

Pour afficher le contenu d’une variable :

				
					
 DECLARE
my_variable VARCHAR2(50);
BEGIN
my_variable := 'Message de débogage';
DBMS_OUTPUT.PUT_LINE(my_variable);
END;

				
			
Erreur Courante : Ne pas activer la sortie DBMS_OUTPUT dans SQL Developer. Il faut aller dans View > DBMS Output et cliquer sur le bouton + pour ajouter une connexion avant d’exécuter le programme.

Exercice : Bloc PL/SQL pratique

Annonce de l’exercice :

Créer un bloc PL/SQL qui affiche un message personnalisé à l’utilisateur et insère une nouvelle catégorie dans une table CATEGORIES.

Partie 1 : Créez un bloc PL/SQL qui affiche le texte suivant :

Bonjour [nom de l’utilisateur] : vous êtes sur la plateforme Alphorm le [date actuelle].

Partie 2 : Créez un programme PL/SQL qui insère une nouvelle catégorie dans la table CATEGORIES avec les valeurs suivantes :

  • CODE_CAT = 5
  • LIBELLE_CAT = ‘Composants’

Solution :

Partie 1 : Bloc PL/SQL d’affichage

				
					
 SET SERVEROUTPUT ON;
BEGIN
DBMS_OUTPUT.PUT_LINE('Bonjour ' || USER || ': vous êtes sur la plateforme Alphorm le ' || SYSDATE);
END;
/

				
			

Explications :

  • La commande SET SERVEROUTPUT ON active l’affichage des messages dans la console.
  • Le bloc BEGIN…END exécute la logique principale.
  • La fonction DBMS_OUTPUT.PUT_LINE affiche un message, combinant le nom de l’utilisateur (USER) et la date actuelle (SYSDATE).

Et voici son résultat lors de son exécution :

Texte accueil Alphorm PL/SQL le 23/10/24

Partie 2 : Programme PL/SQL d’insertion

				
					
 SET SERVEROUTPUT ON;
BEGIN
INSERT INTO CATEGORIES (CODE_CAT, LIBELLE_CAT) VALUES (5, 'Composants');
DBMS_OUTPUT.PUT_LINE('Insertion réussie dans la table CATEGORIES.');
END;
/

				
			

Explications :

  • La commande INSERT INTO permet d’insérer une nouvelle ligne dans la table CATEGORIES.
  • Nous insérons les valeurs CODE_CAT = 5 et LIBELLE_CAT = ‘Composants’.
  • Le message DBMS_OUTPUT.PUT_LINE confirme l’insertion en affichant « Insertion réussie ».
Erreur Courante : L’oubli du point-virgule ; après l’instruction INSERT INTO ou la fonction d’affichage peut provoquer des erreurs de syntaxe.

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Quels sont les avantages de PL/SQL par rapport au SQL standard?
PL/SQL apporte une dimension procédurale à SQL, permettant de structurer le code en blocs logiques. Cela inclut l’utilisation de variables, de conditions et de boucles, ce qui facilite la gestion de la logique complexe et l’automatisation des tâches répétitives. En outre, PL/SQL permet une intégration plus efficace avec les bases de données Oracle, améliorant ainsi la performance et la sécurité des transactions SQL.
Comment déclarer des variables en PL/SQL?
En PL/SQL, la déclaration de variables se fait dans la section DECLARE d’un bloc PL/SQL. Les variables sont définies avec un type de données, comme le montre cet exemple : ‘DECLARE my_variable VARCHAR2(50);’. Cette syntaxe permet de stocker des valeurs temporaires pour être utilisées au cours de l’exécution du programme, facilitant ainsi le traitement des données.
Quelles sont les structures de contrôle disponibles en PL/SQL?
PL/SQL offre des structures de contrôle telles que les instructions conditionnelles IF-THEN-ELSE et les boucles FOR. Ces structures permettent d’exécuter des actions basées sur des conditions spécifiques ou de répéter des actions plusieurs fois. Par exemple, une boucle FOR peut automatiser une tâche répétitive, en améliorant la flexibilité et l’efficacité du code.
Qu'est-ce qu'un trigger en PL/SQL?
Un trigger en PL/SQL est un bloc de code qui s’exécute automatiquement en réponse à certains événements, tels que l’insertion, la mise à jour ou la suppression de données dans une table. Les triggers sont utilisés pour appliquer des règles d’intégrité ou des contraintes de sécurité, garantissant que les actions spécifiques se produisent lorsque certaines conditions sont remplies dans la base de données.
Pourquoi utiliser des packages en PL/SQL?
Les packages en PL/SQL permettent de regrouper des procédures et des fonctions connexes pour une meilleure organisation et gestion du code. Ils facilitent la maintenance et la réutilisation du code, car toutes les routines associées à une fonctionnalité spécifique peuvent être regroupées dans un seul package. Cela améliore également la lisibilité et réduit les risques d’erreurs en centralisant le code.

Conclusion

En maîtrisant PL/SQL, vous pouvez structurer votre code SQL pour améliorer l’efficacité et la lisibilité. Comment allez-vous intégrer ces techniques dans vos projets actuels?

ÉTIQUETÉ : PL/SQL
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Comprendre PL/SQL pour Structurer Votre Code SQL

© Alphorm - Tous droits réservés