La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction au langage PL/SQL

Présentations similaires


Présentation au sujet: "Introduction au langage PL/SQL"— Transcription de la présentation:

1 Introduction au langage PL/SQL
Dr. Mohamed Anis BACH TOBJI Maitre assistant à l’ESEN – Université de Manouba

2 Caractéristiques du PL/SQL
Un langage procédural qui étend SQL. Il est propre à Oracle Modulaire, grâce aux blocs, fonctions & procédures, ainsi que les packages Déclaratif : déclaration de variables, constantes, exceptions, de curseur. Fournit les structures itératives et conditionnelles Traitement des erreurs (routines ou définies par l’utilisateur) Portabilité vers n’importe quel environnement supportant Oracle Intégration : pas de problèmes d’intégration entre Oracle et les environnements de développements Performance : les ordres SQL regroupés dans un bloc PL/SQL sont exécutés en une seule fois

3 Conventions de programmation
Conventions du code En majuscule Les commandes SQL (SELECT, FROM, WHERE etc.) Les mots clé PL/SQL (DECLARE, BEGIN, NUMBER etc.) En minuscule Les noms de variables PL/SQL Les noms de colonnes, tables, vues etc.

4 Conventions de programmation
Conventions de nommage des variables

5 Structure d’un bloc PL/SQL
Un bloc PL/SQL contient trois sections : Une section déclarative: optionnelle, contient les déclarations des variables, constantes, curseurs, exceptions, etc. Commence par le mot clé DECLARE Une section exécutable: obligatoire, contient les requêtes SQL et les instructions PL/SQL. Commence par le mot BEGIN Une section de traitement d’erreurs : optionnelle, contient les instructions à exécuter au cas où des erreurs se produisent. Commence par le mot EXCEPTION À noter que le bloc se termine par le mot clé END

6 Structure d’un bloc PL/SQL
Exemple de bloc PL/SQL DECLARE v_sal NUMBER; BEGIN SELECT sal INTO v_sal FROM emp WHERE ename=‘SMITH’; EXCEPTION WHEN NO_DATA_FOUND THEN … END

7 Les structures de programme PL/SQL
Les blocs anonymes Les procédures et fonctions stockées Les procédures et fonctions d’application Les packages Les triggers (déclencheurs) de base de données Les triggers (déclencheurs) d’application

8 Les règles syntaxiques
Un identifiant : Max de 30 caractères, doit débuter par une lettre. Ne doit pas être un mot réservé. Son nom doit être différent des noms de colonnes. Les chaînes de caractères et les dates constantes entre simples quotes. Les commentaires sur plusieurs lignes doivent être inclus entre les caractères " /* " et " */ " Les caractères "- -" sont utilisés pour mettre une seule ligne en commentaire. Redondance : Certaines donnés se répètent dans les fichiers Manipulation lourde : Le programmeur doit écrire des programmes pour la mise à jour, la consultation, la suppression, le contrôle… vs un langage de gestion de donénes apportés par les BD La manipulation des données est limitée par ce qui est programmé dans les applications La gestion des utilisateurs est elle aussi programmée (ce n’est pas le cas avec les SGBD)

9 La base de données exemple
Redondance : Certaines donnés se répètent dans les fichiers Manipulation lourde : Le programmeur doit écrire des programmes pour la mise à jour, la consultation, la suppression, le contrôle… vs un langage de gestion de donénes apportés par les BD La manipulation des données est limitée par ce qui est programmé dans les applications La gestion des utilisateurs est elle aussi programmée (ce n’est pas le cas avec les SGBD)

10 Les types de variables Il existe deux types de variables qui fonctionnent sous PL/SQL Les variables PL/SQL Variable scalaire : contenant une valeur unique Variable composée : contenant plusieurs valeurs comme le RECORD, le TABLE, le NESTED TABLE, le VARRAY Variable référence : variable qui pointe vers un type de données LOB : variable localisateur d’objets volumineux tel que les images et les vidéos Les variables non PL/SQL Les variables de substitution Les variables hôtes

11 Les types de données scalaires
Les principaux types de données scalaires Les types numériques INTEGER, POSITIVE PLS_INTEGER, BINARY_INTEGER NUMBER(n,d), DECIMAL, REAL Les types chaine de caractère LONG, VARCHAR2(n) CHAR(n) Le type booléen BOOLEAN (true, false ou null) Le type date DATE

12 Les variables scalaires
Déclaration et initialisation variable_name [CONSTANT] datatype [NOT NULL] [:=|DEFAULT expr]; datatype : le type de données de la variable, qui est soit scalaire, composé, référence ou LOB. CONSTANT : contraint la variable à être une constante NOT NULL : ce mot clé contraint la variable à contenir une valeur. expr : valeur initiale d’une variable, peut être une valeur littérale, une autre variable ou une expression impliquant des opérateurs et des fonctions.

13 Les variables scalaires
La déclaration de plusieurs variables sur la même ligne est interdite Affectation variable := expression; DEFAULT : contraint la variable à être une constante SELECT expression INTO variable FROM... Impossible d’affecter la valeur NULL à une variable déclarée NOT NULL (l’erreur VALUE_ERROR est renvoyée) La contrainte NOT NULL doit être suivie par une initialisation

14 Les variables scalaires
Le mot clé %TYPE déclare une variable ayant le même type d’une autre variable ou d’une colonne d’une table ou vue existantes. Code PL/SQL Commentaires DECLARE v_job emp.job%TYPE; v_job prend le type de la colonne job de la table emp. v_prime NUMBER(5,2) := ; v_prime_min v_prime%TYPE := v_prime*2; BEGIN v_prime et est initialisée à 500,45. v_prime_min prend le type de la variable v_prime

15 Les variables composées – le RECORD
Le mot clé %ROWTYPE déclare une variable RECORD ayant la même structure que l’enregistrement d’une table/vue. Code PL/SQL Commentaires DECLARE emp_record emp%ROWTYPE; v_sal NUMBER:=800; Emp_record prend la structure d’un enregistrement de la table emp. BEGIN emp_record.empno:=2564; emp_record.sal:=v_sal+100; Accès aux attributs de l’enregistrement Redondance : Certaines donnés se répètent dans les fichiers Manipulation lourde : Le programmeur doit écrire des programmes pour la mise à jour, la consultation, la suppression, le contrôle… vs un langage de gestion de donénes apportés par les BD La manipulation des données est limitée par ce qui est programmé dans les applications La gestion des utilisateurs est elle aussi programmée (ce n’est pas le cas avec les SGBD)

16 Les variables composées – le RECORD
Le mot clé %ROWTYPE déclare une variable RECORD ayant la même structure que l’enregistrement d’une table/vue. À noter qu’avec la directive %ROWTYPE, les attributs n’héritent pas la contrainte NOT NULL. Code PL/SQL Commentaires DECLARE emp_record emp%ROWTYPE; v_sal NUMBER:=800; Emp_record prend la structure d’un enregistrement de la table emp. BEGIN emp_record.empno:=2564; emp_record.sal:=v_sal+100; Accès aux attributs de l’enregistrement Redondance : Certaines donnés se répètent dans les fichiers Manipulation lourde : Le programmeur doit écrire des programmes pour la mise à jour, la consultation, la suppression, le contrôle… vs un langage de gestion de donénes apportés par les BD La manipulation des données est limitée par ce qui est programmé dans les applications La gestion des utilisateurs est elle aussi programmée (ce n’est pas le cas avec les SGBD)

17 Les variables composées – le RECORD
Pour définir un enregistrement personnalisé, il faut déclarer un type RECORD Ensuite, pour l’utiliser, il faut déclarer une variable avec le type nomRecord Redondance : Certaines donnés se répètent dans les fichiers Manipulation lourde : Le programmeur doit écrire des programmes pour la mise à jour, la consultation, la suppression, le contrôle… vs un langage de gestion de donénes apportés par les BD La manipulation des données est limitée par ce qui est programmé dans les applications La gestion des utilisateurs est elle aussi programmée (ce n’est pas le cas avec les SGBD)

18 Les variables composées – le type TABLE
Le type TABLE permet la déclaration de tableaux dynamiques (sans taille initiale fixe) Une variable de type TABLE inclut deux colonnes, une clé primaire de type BINARY_INTEGER et une colonne de type scalaire ou RECORD. Primary key Colonne 1 Mohamed Toumi 2 Sami Tlili 3 Meriam Bouzid

19 Les variables composées – le type TABLE
Le type TABLE est défini avec cette syntaxe La déclaration d’une variable se fait selon cette syntaxe

20 Les variables composées – le type TABLE
Il existe des procédures et des fonctions qui permettent de manipuler les variables TABLE :

21 Les variables non-PL/SQL
Les variables hôtes (dite aussi de session) C’est une variable définie dans l’environnement hôte du programme PL/SQL (SQL*Plus, Forms Developer…) Sous SQL*Plus, l’utilisation d’une variable hôte se fait ainsi : Instructions Commentaires VARIABLE g_compteur NUMBER; DECLARE v_compt NUMBER := 99; BEGIN :g_compteur := v_compt+1; END; / PRINT g_compteur; Déclaration de la variable sous SQL*Plus Manipulation de la variable (ajout de :) Affichage de la variable sous SQL*Plus

22 Les variables non-PL/SQL
Les variables de substitution Une variable de substitution est définie sous SQL*Plus. Sa valeur est saisie sous SQL*Plus, et est remplacée intégralement dans le bloc L’utilisation d’une variable de substitution : Instructions Commentaires SET SERVEROUTPUT ON ACCEPT s_nbr PROMPT ‘Saisir un entier’; DECLARE v_doub NUMBER; BEGIN v_doub := &s_nbr; DBMS_OUTPUT.PUT_LINE(‘Le résultat est ‘||v_doub); END; Nécessaire à l’affichage Saisie de la variable de session s_nbr Manipulation de la variable (ajout du &) Affichage de la variable PL/SQL v_doub

23 Les opérateurs et les fonctions
Arithmétiques + , - , * , / Logiques AND , OR, NOT Concaténation || Comparaison = , != , < , > , <= , >= , LIKE , BETWEEN , IS NULL , IN Les fonctions Disponibles dans les instructions PL/SQL Toutes les fonctions de ligne (lower, substr, length, round, add_months etc.)

24 Les blocs imbriqués Blocs PL/SQL DECLARE var1 BEGIN … var2 var3 … END;
Portée de var1 Portée de var2 Portée de var3


Télécharger ppt "Introduction au langage PL/SQL"

Présentations similaires


Annonces Google