Accueil du site > Blog > Oracle > Introduction au langage PL/SQL d’Oracle

Introduction au langage PL/SQL d’Oracle

PL SQL ?
L’acronyme veut dire Procedural Langage SQL, donc en Francais Langage procédural SQL.

Si SQL est un langage ensembliste et non procédural soumis à une norme (à peu prés portable), il n’est pas un langage de programmation.
PL/SQL EST un vrai langage de programmation, procédural, propre à Oracle et donc NON PORTABLE
PL/SQL comme SQL s’exécutent sur le moteur de la base de données et non sur le client
SQL interprète les commandes une à une, Le moteur PL/SQL interprète des blocs de commandes (et est donc à priori plus performant)
PL/SQL peut être stocké dans la base ou utilisé de manière interactive

Environnements de travail

PL:SQL peut s’utiliser dans les environnement suivants :
Interpréteurs SQL : SQL*Plus, i*SQLPlus
Précompilateurs (Pro*C, Pro*Cobol.) (ca commence à dater !)
Outils de développement : SQLDeveloper, Designer, Forms, et même APEX
Autre langages de développement : C,C++,Java,PHP

Le + simple pour démarrer avec PLSQL est d’utiliser SQL*developper l’outil de développement gratuit d’Oracle, téléchargeable sur http://otn.oracle.com

Avantages / inconvénients

PLSQL est complémentaire du SQL (qui lui n’est pas un langage de programmation)
est en général stocké dans la base, et permet donc un emeilleure intégration/cohérence du code avec les données
permet le traitement par bloc de SQL et donc optimise le trafic réseau
utilisation de variable de stockage et de type simple et structuré dynamique (%TYPE, %ROWTYPE, etc)
traitements plus complexes, notamment pour la gestion des cas particuliers et des erreurs (traitement des exceptions)
l’utilisation de librairies standards prédéfinies (supplied PLSQL packages, comme les RDBMS_xxx)
paramétrage et création d’ordres SQL dynamiques.

Fonctionnalités issues de SQL

PL/SQL intègre des ordres SQL de gestion de la base :
interrogation de données : SELECT
manipulation de données : INSERT, UPDATE, DELETE
gestion transactionnelle : COMMIT, ROLLBACK
fonctions : TO_CHAR, TO_DATE, UPPER, ROUND…
manipulation de structures : CREATE, ALTER , DROP, RENAME, …

rem : Avec les versions antérieures à la 9i, Les ordres du LDD ne sont pas supportés par défaut il faut utiliser un package spécial : DBMS_SQL !

Spécificités PL/SQL

Définition de variables simple, et structurées (tableaux, record)
Définbitiion de nouveaux types
Traitements conditionnels (if, then , else)
Traitements répétitifs (boucles for, while, …)
Gestion des curseurs
Gestion des erreurs / exceptions

Réagissez à cet article ?!

Dans la même rubrique

Merge statement in oracle 9i

Dans l’exemple suivant, la requette pour fusionner l=une table source avec une table cible : SQL> MERGE 2 INTO target_table tgt 3 USING source_table src 4 ON ( src.object_id = tgt.object_id ) 5 WHEN MATCHED 6 THEN 7 UPDATE 8 SET tgt.object_name = src.object_name 9 , tgt.object_type = (...)