Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Initiation au PL/SQL

Par Arnaud PHILIPPS Publié le 22/10/2015 à 16:48:29 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

Cet article a pour but de vous expliquer la structure du PL/SQL, une interface procédurale au système de gestion de base de données relationnelle Oracle. ll permet de combiner des requêtes SQL et des instructions procédurales (boucles, conditions) dans le but de créer des traitements complexes ...

Bonne lecture !

Structure

PL/SQL signifie Procedural Language / SQL. L’unité de base en PL/SQL est un bloc, tous les programmes PL/SQL sont constitués de blocs, pouvant être imbriqués les uns dans les autres. Un bloc à la structure suivante :

Seule la section exécutable est nécessaire. Les autres section sont facultatives. Les seules instructions admises dans un programme PL / SQL sont SELECT, INSERT, UPDATE, DELETE et plusieurs autres déclaration de manipulation de données. Les instructions de définition de données comme CREATE, DROP ou ALTER ne sont pas autorisés. La section exécutable contient également des constructions telles que des affectations, des boucles, des appels de procédure. La PL/SQL n’est pas sensible à la casse et les commentaires sont similaires à ceux du C ( / * … * / ).

Variables et Types

Les informations sont transmises entre le programme PL/SQL et la base de données par le biais de variables. Chaque variable a un type spécifique qui lui est associé. Ce type peut être :

- L’un des types utilisés par SQL pour les colonnes de base de données.

- Un type générique utilisé en PL/SQL comme NUMBER.

Le type générique le plus couramment utilisée est NUMBER. Les variables de type NUMBER peuvent contenir un entier ou un nombre réel. Le type de chaine de caractère le plus couramment utilisée est VARCHAR(n), ou n est la longueur maximale de la chaine de caractère en octet. Cette longueur est nécessaire, il n’y a pas de valeur par défaut.

Exemple :

Notez que PL / SQL permet d’utiliser des variables BOOLEAN, même si Oracle ne supporte pas BOOLEAN comme un type pour les colonnes.

Le type en PL/SQL peut être délicat. Si il y a une incompatibilité de type, les affectations et les comparaisons de variables peuvent ne pas fonctionner comme vous le pensiez. Pour être sûr, au lieu de coder en dur le type d’une variable, vous pouvez utiliser %TYPE.

Exemple :

Donne à la variable biere le type qui a été déclaré pour la colonne Biere.

La valeur initiale d’une variable, quel que soit son type, est NULL. Nous pouvons attribuer des valeurs aux variables, en utilisant l’opérateur « : = »  . L’affectation peut se produire après que la variable soit déclarée ou n’importe ou dans la partie exécutable.

Exemple :

Boucle

La PL/SQL nous permet de créer des boucles d’une manière assez familière !

Curseur

La technique du curseur déclaré explicitement permet de parcourir une à une les lignes d’une requête. L’intérêt du curseur est donc de pouvoir récupérer ( par un SELECT) plusieurs lignes.

Les étapes :

- On déclare le curseur

- On l’ouvre

- On en récupère les lignes une à une, en commençant par la première

- On le referme

Exemple :

Procedure

Les procédures en PL/SQL se comportent comme des procédures dans un autre langage de programmation. Une procédure est introduite par les mots-clés CREATE PROCEDURE suivi par le nom de la procédure et ses paramètres. Il est possible de suivre CREATE par OR CREATE, l’avantage est que si vous avez déjà fait la définition vous ne recevrez pas de message d’erreur. Mais si vous avez une procédure du même nom vous ne serez pas averti et l’ancienne sera perdu.

Il peut y avoir n’importe quel nombre de paramètre, chacun suivi d’un mode et d’un type. Les modes possibles sont IN (read-only), out( write-only) and INOUT(read and write).

Conclusion

C'est ainsi que s'achève cet article sur l’initiation au PL/SQL. Vous avez pu constater finalement que la réalisation de procédure en PL/SQL n'est pas bien compliqué. Si vous avez des questions je serai ravi d’y répondre par mail.

Have Fun !

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels