Introduction au langage PL/SQL

Slides:



Advertisements
Présentations similaires
PL/SQL : Le Langage PL/SQL est une extension du SQL, qui offre
Advertisements

Introduction au Langage C,C++
Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL.
Initiation à la programmation et algorithmique cours 4
SQL - Subtilités.
Oracle: OO.
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
Partie 1 Etude de l'existant
Les éléments de base de l’algorithmique
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Chap 4 Les bases de données et le modèle relationnel
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
Programmation multimédia 3
Le langage Javascript pour le web
Principes de programmation
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections 15.5.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Bases de Données Avancées - TP2: SQL
Manipulation des données Requêtes simples
PL/SQL Noreddine GHERABI 1.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Animateur : Med HAIJOUBI
Limiter et trier des données
PHP & My SQL.
Le Langage de BLOC PL/SQL
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
JavaScript.
Algorithmique et programmation en
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Créer des packages.
Un survol du language C.
 Syntaxe du langage PHP
PostgreSQL – Présentation
Module 7 : Utilisation de requêtes élaborées
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
6 Copyright © Oracle Corporation, Tous droits réservés. Autres concepts relatifs aux packages.
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Sélection de colonnes (la projection)
1 Copyright © Oracle Corporation, Tous droits réservés. Présentation des sous-programmes PL/SQL.
Cours LCS N°4 Présenté par Mr: LALLALI
Les Contraintes.
1 Système d’exploitation Les scripts csh 1 ère Année Année Tienté HSU.
Introduction  Langage propre à Oracle basé sur ADA  Offre une extension procédurale à SQL  PL/SQL permet d’utiliser un sous-ensemble du langage SQL.
Révision du langage PL/SQL
Copyright  Oracle Corporation, Tous droits réservés. 2 Sélection et Tri des Lignes Retournées par un SELECT.
Création et Gestion de Tables
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
02/06/2015© Robert Godin. Tous droits réservés.1 5 Interface entre SQL et un programme n SQL incomplet n Défaut d'impédance (impedance mismatch) – modèle.
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
PL/SQL Présentation.
Note: Les nombres écrits en gras renvoie à des leçons entières. Symbole %FOUND 6-13 %ISOPEN 6-13 %NOTFOUND 6-13 %ROWCOUNT 6-13 %ROWTYPE 5, 6-17 %TYPE 1-20.
Le langage SQL. Voir polycopié: Introduction à SQL SQL.
Procédures Stockées Fonctions Paquetages
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Types de données composites
Le langage SQL.
Introduction à l’utilitaire
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Initiation aux bases de données et à la programmation événementielle
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Principes et variables
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Les exceptions Une exception est un identificateur PL/SQL détecté pendant la phase d’exécution. Comment est-elle déclenchée ? À la suite d’une erreur.
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
Transcription de la présentation:

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

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

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.

Conventions de programmation Conventions de nommage des variables

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

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

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

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)

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)

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

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

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.

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

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) := 500.50; 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

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)

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)

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)

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

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

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

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

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

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.)

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