OCP Oracle (PLSQL) : Le Langage PL/SQL Chaieb Chiheb © 16/03/2021 16/03/2021 1

OCP Oracle (PLSQL) : Le Langage PL/SQL Chaieb Chiheb © 16/03/2021 16/03/2021 1 Pr. Chaieb Chiheb © Introduction Au PL/SQL • Définition : PL/SQL est un langage algorithmique procédural considéré comme une extension du SQL, intégré au serveur Oracle (Moteur PL/SQL) . Il permet de développer des programmes et des modules stockés dans la base appelés par des programmes d’application (Java, Jdevelopper , Web, ..) ou pour contrôler les transactions utilisateurs. C’est un langage de programmation à la fois puissant, simple et moderne destiné à : Résoudre de problèmes complexe (dépasse le SQL) Exprimer facilement les règles de gestion complexes (CI) sous forme de procédures et de triggers stockés. 16/03/2021 Pr. Chaieb Chiheb © 2 Caractéristiques du Langage Intégration parfaite des ordres LMD du SQL : Insert, Update, Delete, Select ; Instructions procédurales : • Déclarations de variables, constantes, curseurs .... • Instructions conditionnelles : if else, elsif … • Instructions répétitives : while, for, loop … Traitement de curseurs utilisateurs. Avec PL/SQL on construit un programme complet (déclaration+traitement) dont l’exécution est transactionnelle. 16/03/2021 3 Pr. Chaieb Chiheb © Structure des modules PL/SQL Une structure de « bloc » Le PL/SQL n’interprète pas une commande, mais un ensemble de commandes contenues dans un « bloc » PL/SQL. Ce bloc peut comporter plusieurs « sous‐blocs ». Sa structure est simple d’apprentissage et lisible en termes de maintenance de programmes. Ce bloc sera utilisé comme un programme simple, ou pour implémenter une fonction cataloguée ou un déclencheur de base de données. Ce bloc PL/SQL est constitué de trois sections 16/03/2021 4 Pr. Chaieb Chiheb © Sections PL/SQL La section Declare, réservée pour la déclaration de variables, des constantes, d'exceptions et des curseurs. Cette section peut être parfois absente en cas d'absence des déclarations. La section Begin exécutable dont sa présence est obligatoire, comporte les instructions à exécuter du programme. Elle se compare à la structure d'un programme quelconque écrit avec un langage algorithmique. La section de gestion d'exceptions et qui est réservée pour le traitement des anomalies internes (générées par le noyau) et externes définies par le programmeur. 16/03/2021 5 Pr. Chaieb Chiheb © Sections d’un Bloc PL/SQL 2 • La section obligatoire d’un bloc est la section exécutable délimitée par le BEGIN et le END. Elle peut être précédée d’une section optionnelle de déclaration de variables, DECLARE, puis d’une zone optionnelle de traitement des erreurs, EXCEPTION. DECLARE ‐‐ zone de déclaration de variables BEGIN ‐‐ traitements ... EXCEPTION ‐‐ traitement des erreurs rencontrées END; 16/03/2021 6 Pr. Chaieb Chiheb © Section Declare • Cette section est optionnelle, toute fois les variables et les constantes utilisées dans le programme, doivent impérativement être déclarées dans cette section ce qui rend son existence est obligatoire. Elle commence par le mot Declare et se termine avant le début de l'autre section exécutable commençant par le mot Begin. Une instruction de déclaration fait l'objet d'une seule variable ou d'une seule constante. La déclaration consiste à attribuer à la variable ou à la constante un nom, un type et une valeur optionnelle. Chaque déclaration s'écrit sur une ligne se terminant par un point virgule. 16/03/2021 Pr. Chaieb Chiheb © 7 Section Exécutable C'est la section obligatoire d'un programme PL/SQL, Elle commence par le mot clé Begin et s'étend jusqu'au début de la section d'exceptions. Elle comporte toutes les instructions exécutables du programme. Chaque instruction doit se terminer par un point virgule. Ses instructions sont essentiellement des catégories suivantes : instruction d'affectation instructions conditionnelles instructions répétitives instructions SQL du L.M.D instructions de traitement des curseurs 16/03/2021 Pr. Chaieb Chiheb © 8 Les variables PL/SQL • PL/SQL permet de déclarer des variables et des constantes, puis de les utiliser dans la section de traitements. Cette déclaration est impérative avant leurs utilisation, elle s’effectue dans la zone DECLARE. • Les types de variables : – Les nombres : number(n,m) , float, integer, .. – Les chaînes : char(n), varchar2(n) ; – Les date heures : date; – Les booléens : boolean (true, false, null). – Objets : clob, blob 16/03/2021 9 Pr. Chaieb Chiheb © Remarques Une déclaration par ligne Chaque déclaration se termine par un ; Les commentaires sont ‐‐ sur une ligne /* un commentaire long sur n lignes */ Le nom de variable (identificateur) est constitué de : Lettres alphabétiques , chiffres et _ N’utiliser pas les mots réservés du langage. 16/03/2021 Pr. Chaieb Chiheb © 10 Les variables Numériques Une variable numérique peut être déclarée dans l’un de types suivants selon le besoin : Float, real : une réel flottant : 1.222222, 5E3 Integer : entier relatif : 12, 2333, ‐87 Number (n) : entier relatif de n chiffres au maximum : 1.. 9999 Number (n,m) : nombre décimal de n chiffres total , avec une précision de m décimaux : 12.89, ‐ 234.01 n=6 , m=2 16/03/2021 Pr. Chaieb Chiheb © 11 Declare N float ; Prix number(8,3); Compteur number(4); ……………… Les variables chaînes Char(n) : une variable de ce type stocke une chaine de n caractères. N<= 32767. espace réservé à l’avance et lui même alloué. Varchar2(n) : une variable de taille variable. L’espace est alloué selon la valeur affectée. • Long : pour stocker de quantité de texte importante pouvant atteindre deux milliard de caractères . 16/03/2021 Pr. Chaieb Chiheb © 12 DECLARE Ville char(15) ; Adresse VARCHAR2(30); Sexe char ; BEGIN Ville := ‘Sidi BouZid’; Adresse := ‘12 Rue la Révolution ‘ ; Variables de type Date – Heure • Représentant le type date heure selon plusieurs formats. • Le paramètre de configuration oracle NLS_Date_format (dans le base des registres d'oracle) permet de spécifier le format de la date et qui peut prendre l'une des formes suivantes : • dd/mm/yy , dd/mm/yyyy , dd‐mm‐yy, dd‐month‐yyyy : 18/02/11 ou 18‐Février – 2011, • Une variable date peut comporter l’heure aussi selon le format hh24:mi:ss , hh12:mi:ss • Une constante date est entourée par deux apostrophes. 16/03/2021 Pr. Chaieb Chiheb © 13 Declare d date ; heure date ; ‐‐ mémoriser la date et l’heure jour Begin d := ‘13‐02‐15’; heure := to_date (sydate, ‘dd‐mm‐yy hh24:mi'); Le Type Logique • Boolean : est un type composé des valeurs booléennes « True, False, Null ». Seules les variables peuvent avoir ce type, et non les colonnes de tables. Une variable logique intervient dans l'évaluation d'une condition (si b est une variable logique, on peut écrire b:= x<y). • Les opérateurs principaux sont : ! (not) , and, Or. • b1:=( x<y) or( z!=w); b1 Boolean; b2 Boolean; • b2 := not (b1); 16/03/2021 Pr. Chaieb Chiheb © 14 Le type record (structure) • Une structure regroupe plusieurs champs de types variés et qui désigne un objet. Un employé est caractérisé par un code, un nom, un grade etc.. Tous ces éléments seront regroupés dans une entité structure qu’on peut la définir : • Type employe is record ( code number, nom varcha2(25), date_nais date, grade char(15) ) ; E1 employe; ‐‐ déclarer une variable E1 de type employe E1.code := 12; E1.nom := ‘Ahmed Mouradi’; …. 16/03/2021 Pr. Chaieb Chiheb © 15 Déclaration de variables et constantes • La déclaration d'une variable consiste à allouer un espace dans la mémoire pour stocker et modifier une valeur. Elle est typée et peut recevoir une valeur lors de sa déclaration. • Une constante est définie comme une variable dont le contenu n’est peut pas être modifié dans le programme. • La syntaxe de déclaration d'une variable (ou une constante) prend plusieurs formes : Nom_variable[constant] data_type [not null] ; Nom_variable identifiant%type [not null] ; Nom_variable identifiant%rowtype avec : Identifiant : soit une colonne d’une table : table.colonne, soit une table, soit le nom d’une autre variable. 16/03/2021 Pr. Chaieb Chiheb © 16 Modèles de Déclarations • Une variable est déclarée de même type que : la colonne d’une table : v1 client.nom%type; Une autre variable : v2 v1%type; Une table (variable structurée) : CL client%rowtype; Une variable peut être définie par référence au type d'une colonne d'une table • Initialiser une variable lors de sa déclaration : Nom_variable type := valeur| expression PL/SQL ; x real not null := 12 .3*25 ; 16/03/2021 Pr. Chaieb Chiheb © 17 Modèles de Déclarations • 16/03/2021 Pr. Chaieb Chiheb © 18 Declare Totalc number(8,3); Nomc varchar2(15) : = 'Ahmed'; taille_nom number := length(Nomc)*2 ; Datec date; Num_clt client.idclt%type; Name client.nom%type; Vclt client%rowtype; Pi constant number :=3.14; Initialisation de variables 16/03/2021 Pr. Chaieb Chiheb © 19 • Lors de sa déclaration dans la section Declare • Au cours de son utilisation section Exécution Formes d’initialisation Variable := valeur |expression ; – Expression compatible avec le type de la variable – Expression numérique , chaîne logique ou date; Select expression into variable from table where condition; le select doit ramener une seule valeur à affecter dans la variable indiquée : Initialisation de variables 16/03/2021 Pr. Chaieb Chiheb © 20 • Lors de sa déclaration dans la section Declare • Au cours de son utilisation section Exécution Formes d’initialisation Variable := valeur |expression ; uploads/Ingenierie_Lourd/ ocp-oracle-plsqlv3-1 1 .pdf

  • 24
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager