Bases de Données Avancées PL/SQL
|
|
- Adrien Rivard
- il y a 6 ans
- Total affichages :
Transcription
1 1/170 Bases de Données Avancées Thierry Hamon Bureau H202 Institut Galilée - Université Paris 13 & LIMSI-CNRS hamon@limsi.fr INFO2 BDA
2 2/170 Introduction Communication avec un SGBD utilisant SQL
3 3/170 Introduction Solution complète Oracle
4 4/170 Clauses SQL Introduction SELECT INSERT UPDATE DELETE CREATE ALTER DROP RENAME TRUNCATE GRANT REVOKE COMMIT ROLLBACK SAVEPOINT Interrogation des données Langage de Manipulation de Données (LMD) Langage de Définition de Données (LDD) Langage de Contrôle de Données (LCD) Contrôle de transaction
5 5/170 Introduction Procedural Language for Structured Query Language Langage fournissant une interface procédurale au SGBD Oracle Intègration du langage SQL en lui apportant une dimension procédurale Réalisation de traitements algorithmiques (ce que ne permet pas SQL) Mise à disposition de la plupart des mécanismes classiques de programmation des langages hôtes tels que C, COBOL, PASCAL, C++, JAVA...
6 6/170 Introduction Environnement
7 7/170 Introduction Avantages de complément de SQL (qui n est pas procédural) Mécanismes offerts par : Structures itératives : WHILE *** LOOP, FOR *** LOOP, LOOP *** Structures conditionnelles : IF *** THEN *** ELSE ELSEIF *** ENDIF, CASE *** Déclaration des curseurs et des tableaux Déclaration de variables Affectation de valeurs aux variables Branchements : GOTO, EXIT Exceptions : EXCEPTION
8 8/170 Introduction Avantages de Intégration Meilleure cohérence du code avec les données Utilisation de librairies standards prédéfinies (bibliothèques partagées)
9 9/170 Introduction Avantages de Blocs SQL Traitement par/de blocs SQL dans un énoncé (optimisation des transactions réseaux)
10 10/170 Introduction Avantages de Exécution de programmes modulaires Traitements complexes (cas particuliers, erreurs) Traitements des exceptions...
11 11/170 Introduction Avantages de Résumé Langage portable Utilisation de variable de stockage Utilisation de type simple ou de type structuré dynamiquement (%TYPE, %ROWTYPE, etc.) Utilisation des structures de contrôle des langages procéduraux Gestion et manipulation des erreurs Création d ordre SQL dynamique
12 12/170 Structure de blocs Utilisation de 3 formes : Bloc de code, executé comme une commande SQL (utilisation d un interpréteur standard SQL+ ou isql*plus) Fichier de commandes Programme stocké : procédure, fonction, package ou trigger
13 13/170 Structure de blocs Structure d un bloc S e c t i o n d é c l a r a t i v e, o p t i o n n e l l e DECLARE V a r i a b l e s, c u r s e u r s, e x c e p t i o n s,... S e c t i o n e x é c u t a b l e, o b l i g a t o i r e BEGIN I n s t r u c t i o n s SQL e t P o s s i b i l i t é s de b l o c s f i l s ( i m b r i c a t i o n de b l o c s ) S e c t i o n de t r a i t e m e n t des e x c e p t i o n s, o p t i o n n e l l e EXCEPTION o p t i o n n e l l e Traitement des e x c e p t i o n s ( g e s t i o n des e r r e u r s ) Terminaison du bloc, o b l i g a t o i r e END ; /
14 14/170 Structure de blocs Type de blocs Bloc anonyme Procédure Fonction
15 15/170 Structure de blocs Type de blocs Bloc anonyme Structure classique (1 à 3 sections) Un bloc ne peut être vide. Il doit contenir une instruction (il peut donc contenir l instruction NULL) [ DECLARE ] BEGIN I n s t r u c t i o n s [ EXCEPTION] END; /
16 16/170 Structure de blocs Type de blocs Bloc anonyme Exemple 1 DECLARE x INTEGER; BEGIN x := 1 ; END;
17 17/170 Structure de blocs Type de blocs Bloc anonyme Exemple 2 DECLARE v a r x VARCHAR2( 5 ). BEGIN SELECT nom colonne INTO v a r x FROM nom table EXCEPTION WHEN nom exception THEN... END ; /
18 18/170 Structure de blocs Type de blocs Procédure Bloc nommé puis compilé et stocké dans la base PROCEDURE nom I S BEGIN I n s t r u c t i o n s [ EXCEPTION] END; /
19 19/170 Structure de blocs Type de blocs Procédure Exemple PROCEDURE p r o c e x e m p l e I S v a r x VARCHAR2( 5 ) ; BEGIN SELECT nom colonne INTO v a r x FROM nom table EXCEPTION WHEN n o m e x c e p t i o n THEN... END ; / Commande SQL qui crée la procédure compile et stocke dans la base le bloc compris entre le BEGIN et le END, référencé par proc exemple
20 20/170 Structure de blocs Type de blocs Procédure Remarques : Exécution (auto) de la procédure : SQL> EXECUTE proc_exemple Pas d exécution de procédure (ou d instructions) en fin de transaction (COMMIT, ROLLBACK, Ordre DDL) Décision d enregistrement ou d annulation de la transaction en cours : à réaliser par le programme appelant la procédure
21 21/170 Structure de blocs Type de blocs Fonction Fonction : procédure retournant une valeur FUNCTION nom RETURN t y p e d o n n é e s IS BEGIN I n s t r u c t i o n s RETURN v a l e u r ; [ EXCEPTION] END; /
22 22/170 Structure de blocs Type de blocs Fonction exemple SQL> CREATE OR REPLACE FUNCTION s o l d e ( no INTEGER) RETURN REAL IS l e s o l d e REAL ; BEGIN SELECT s o l d e INTO l e s o l d e FROM c l i e n t s WHERE n o c l i = no ; RETURN l e s o l d e ; END; /
23 23/170 Remarques : Structure de blocs Type de blocs Fonction Utilisation de fonction au sein d une requête SQL Exemple : SQL> SELECT solde(1000) FROM dual ; Solde(1000) ,50 Appel d une fonction comme une procédure provoque une erreur Exemple : fonction mdp(integer) SQL> execute mdp(2); BEGIN mdp(2); END; * ERREUR a la ligne 1 : ORA-06550: line 1, column 7: PLS-00221: MDP is not a procedure or is undefined ORA-06550: line 1, column 7:
24 24/170 Structure de blocs Types de variables Variables locales Constantes Composites Références Variables de l environnement extérieur à Attachées (Bind) Hôtes (Host)
25 25/170 Structure de blocs Déclaration des variables en Syntaxe I d e n t i f i c a t e u r [CONSTANT] t y p e d o n n é e s [NOT NULL] [:= e x p r e s s i o n ] ; Exemple DECLARE v d a t e n a i s s a n c e DATE; v departement NUMBER( 2 ) NOT NULL := 1 0 ; v v i l l e VARCHAR2(13) := P a r i s ; c cumul CONSTANT NUMBER := 1000;
26 26/170 Structure de blocs Assignation des variables Syntaxe I d e n t i f i c a t e u r := e x p r ; Exemples Affecter la date de naissance du fils d un employés v d a t e n a i s s a n c e := 23 SEP 2004 ; Fixer le nom d un employé à Clément v nom := Clément ;
27 27/170 Structure de blocs Types de données scalaires Types de base chaînes de caractères VARCHAR2(n)/NVARCHAR2(n) : Chaîne de n caractères (n < 4000octets) longueur variable (préfixe N : prise en compte de la localisation NLS/National Language Support) CHAR(n)/NCHAR(n) : Chaîne de n caractères (n < 2000octets) longueur fixe, rempli par des espaces LONG/RAW/LONG RAW : Chaîne de caractère ou de données binaires (raw) de longueur variable ( < 2000octets)
28 28/170 Structure de blocs Types de données scalaires Types de base nombres et date NUMBER (n, m) : Réel avec n chiffres significatifs et m décimals INTERGER/FLOAT : Nombre entier/réel signé BINARY_INTEGER : Nombre entier signé sur 32 bits (utilisation de la librairie mathématique) DATE : date entre le 1 janvier et le 21 décembre 9999 BOOLEAN : booléen NB : pas d équivalent en SQL. Il n est donc pas possible de stocker un booléen dans une table de sélectionner un élément de table dans un variable booléenne d utiliser un booléen dans une requête SQL ou une fonction appelée dans une requête SQL (paramètre en entrée ou valeur de retour)
29 29/170 Structure de blocs Déclaration des variables scalaires Exemples v j o b VARCHAR2( 9 ). v c o u n t BINARY INTEGER := 0 ; v s a l t o t a l NUMBER( 9, 2 ). v d a t e DATE := SYSDATE +7; v t a u x t a x e CONSTANT NUMBER( 3, 2 ) := ; v v a l i d e BOOLEAN NOT NULL := TRUE;
30 30/170 Structure de blocs Attribut %TYPE Définition : déclaration d une variable associée à Une colonne d une table dans la BD Une variable précédemment définie Exemples : v nom emp. nom%type; v s a l a n n u e l NUMBER( 7, 2 ) ; v s a l m e n s u e l v s a l a n n u e l %TYPE := 2000;
31 31/170 Structure de blocs Types de données composites Types : Les tables Les records (voir plus loin)
32 32/170 Variables attachées Variables attachées/bind variables Variables de substitution dans les requêtes SQL Variable référençant des variables non- Economie d analyse de la requête, donc gain de temps pour Oracle Mécanisme considéré par certains comme le point clé de performance d Oracle
33 33/170 Variables attachées Variables attachées/bind variables Déclaration Déclaration, en SQL*Plus, d une variable attachée : utilisation de la commande VARIABLE Exemple : VARIABLE n o m v a r i a b l e t y p e v a r i a b l e ; VARIABLE g s a l m e n s u e l NUMBER( 7, 2 ) ;
34 34/170 Variables attachées Variables attachées/bind variables Référence aux variables non- Exemple : Stocker le salaire mensuel dans une variable globale SQL*Plus : g s a l m e n s u e l := v s a l a n n u e l / 1 2 ; Faire référence aux variables non- comme des variables hôte Précéder la référence par un :
35 35/170 Variables attachées Variables attachées/bind variables Exemple d utilisation optimisation Exemple de requête SELECT générées des milliers de fois : SELECT fname, lname, pcode FROM c u s t WHERE i d = 674; SELECT fname, lname, pcode FROM c u s t WHERE i d = 234; SELECT fname, lname, pcode FROM c u s t WHERE i d = 332;... A chaque soumission d un requête, Vérification si la requête a déjà été été soumise Si oui, récupération du plan d exécution de la requête, et exécution de la requête
36 36/170 Variables attachées Variables attachées/bind variables Exemple d utilisation optimisation Si non, analyse syntaxique de la requête définition des différentes possibilités d exécution définition du plan d exécution optimal Processus coûteux en temps CPU, alors que seule la valeur de id change! Solution : réutiliser le plan d exécution existant Nécessite d utiliser des variables attachées : Substitution de la valeur par la variable attaché Envoi de la même requête pour toutes les valeurs de id Exemple : SELECT fname, lname, pcode FROM c u s t WHERE i d = : c u s t n o ;
37 37/170 Bloc syntaxe et directives Bloc Les instructions peuvent être écrites sur plusieurs lignes. Les unités lexicales peuvent être séparées par des espaces : Délimiteurs Identificateurs Littéraux (ou constantes) Commentaires
38 38/170 Bloc syntaxe et directives Bloc Les littéraux Les dates et les chaînes de caractères délimitées par deux simples cotes V nom := T h i e r r y ; v a n n e e := to number ( t o c h a r ( v D a t e F i n P e r i o d e, YY ) ) ; Les nombres peuvent être des valeurs simples ou des expressions V s a l a i r e := ;
39 39/170 Bloc Commentaires dans le code Précéder un commentaire écrit sur une seule ligne par --. Placer un commentaire écrit sur plusieurs lignes entre les symboles /* et */. Exemple : v s a l NUMBER( 9, 2 ) ; BEGIN / C e c i e s t un commentaire q u i peut e t r e e c r i t s u r p l u s i e u r s l i g n e s / ENd; C e c i e s t un commentaire s u r une l i g n e
40 40/170 Bloc Les Fonctions SQL en Les fonctions sur les nombres Les fonctions sur les chaînes de caractères Les fonctions de conversion de type de données Les fonctions de dates
41 41/170 Exemples : Bloc Exemples de fonctions SQL en Recomposer l adresse d un employé : V AdrComplete : = V Rue CHR( 3 2 ) V V i l l e CHR( 3 2 ) V CodePostal ; Convertir le nom en majuscule V Nom := UPPER (V Nom) ; Extraction d une partie de la chaîne V chr := Substr (, 4, 3 ) ; Replacement d une chaîne par une autre V chr := R e p l a c e ( Serv1 / Prod / t b c l i e n t, Prod, V a l i d ) ;
42 42/170 Bloc Blocs imbriqués et porté des variables... x BINARY INTEGER ; BEGIN Debut de l a p o r t e e de x... DECLARE y NUMBER; BEGIN debut de l a p o r t e de y... END; f i n de l a p o r t e e de y... END; f i n de l a p o r t e e de x
43 43/170 Opérateurs Opérateurs dans Identique à SQL Logique Arithmétique Concaténation Parenthèses pour contrôler l ordre des opérations Opérateur supplémentaire : Opérateur d exponentiation **
44 44/170 Opérateurs Utilisation des variables liées Pour référencer une variable en, on doit préfixer son nom par un : Exemple : : c o d e r e t o u r := 0 ; IF v é r i f i e r c r é d i t o k ( compt no ) THEN : c o d e r e t o u r := 1 ; END IF ;
45 45/170 Instructions Instructions SQL dans Extraire une ligne de données à partir de la BD par la commande SELECT. Un seul ensemble de valeurs peut être retourné Effectuer des changements aux lignes dans la BD par les commandes du LMD Contrôler des transactions avec les commandes COMMIT, ROLLBACK et SAVEPOINT Déterminer les résultats du LMD avec des curseurs implicites (voir plus loin)
46 46/170 Instructions Instruction SELECT dans Récupérer une donnée de la BD avec SELECT. Syntaxe SELECT l i s t e s é l e c t i o n INTO { nom var [, nom var ]... nom record } FROM table WHERE c o n d i t i o n ;
47 47/170 Instructions Instruction SELECT dans La clause INTO est obligatoire Exemple DECLARE BEGIN... END; v deptno NUMBER( 2 ) ; v l o c VARCHAR2( 1 5 ) ; SELECT deptno, l o c INTO v deptno, v l o c FROM dept WHERE nom d = INFORMATIQUE ;
48 48/170 Instructions Instruction SELECT dans Retourne la somme des salaires de tous les employés d un département donné. Exemple DECLARE BEGIN END; v s o m s a l emp. s a l%type; v deptno NUMBER NOT NULL := 1 0 ; SELECT sum ( s a l ) f o n c t i o n d a g r é INTO v s o m s a l FROM emp WHERE deptno = v deptno ;
49 49/170 Manipulation de données Manipulation de données en Effectuer des mises à jour des tables de la BD utilisant les commandes du LMD : INSERT UPDATE DELETE
50 50/170 Manipulation de données Insertion de données Ajouter les informations d un nouvel employé à la table emp Exemple DECLARE v empno NUMBER NOT NULL := ; BEGIN INSERT INTO emp ( empno, emp nom, poste, deptno ) VALUES ( v empno, Clément, D i r e c t e u r, 1 0 ) ; END;
51 51/170 Manipulation de données Mise à jour de données Augmenter le salaire de tous les employés dans la table emp qui ont le poste d enseignant. Exemple DECLARE BEGIN END; 1 v a u g m s a l emp. s a l%type := 2000; UPDATE emp SET s a l := s a l + v a u g m s a l WHERE j o b = E n s e i g n a n t ;
52 52/170 Manipulation de données Suppression de données Suppression des lignes appartenant au département 10 de la table emp Exemple DECLARE BEGIN END; v deptno emp. deptno%type := 1 0 ; DELETE FROM emp WHERE deptno = v deptno ;
53 53/170 Structure de contrôle Structure de contrôle dans IF conditionnel : IF THEN END IF ; IF THEN ELSE END IF ; IF THEN ELSIF END IF ; Les boucles : LOOP END LOOP; FOR LOOP END LOOP; WHILE LOOP END LOOP;
54 54/170 Structure de contrôle Instruction IF Syntaxe IF c o n d i t i o n THEN énoncés ; [ ELSIF c o n d i t i o n THEN énoncés ; ] [ ELSE énoncés ; ] END IF ;
55 55/170 Structure de contrôle Instruction IF Exemple de IF simple Mettre le ID de l employé MARK à 101. I F v nom = MARK THEN v ID := 101; END IF ;
56 56/170 Structure de contrôle IF simple Si le nom de l employé est CLEMENT, lui attribuer le poste Enseignant, le département n 102 et une commission de 25 % sur son salaire actuel Exemple... IF v nom = Clément THEN v p o s t e := E n s e i g n a n t ; v deptno := 102; v nouv comm := s a l ; END IF ;...
57 57/170 Structure de contrôle IF-THEN-ELSE Si le nom de l employé est CLEMENT, lui attribuer le poste Enseignant, le département n 102 et une commission de 25 % sur son salaire actuel, sinon afficher le message Employé inexistant Exemple... IF v nom = Clément THEN v p o s t e := E n s e i g n a n t ; v deptno := 102; v nouv comm := s a l ; ELSE DBMS OUTPUT. PUT LINE ( Employé i n e x i s t a n t ) ; END IF ;...
58 58/170 Structure de contrôle IF-THEN-ELSIF Pour une valeur donnée en entrée, retourner une valeur calculée Exemple... IF v d e b u t > 100 THEN RETURN ( 2 v d e b u t ) ; ELSIF v d e b u t >= 50 THEN RETURN ( 5 v d e b u t ) ; ELSE RETURN (1 v d e b u t ) ; END IF ;...
59 59/170 CASE Structure de contrôle Exemple : s e l e c t i d b c r e x p o, i d g e s t f i n, rownum, case when rownum <= 50 then 1 50 rownum rownum when rownum <= 100 then rownum rownum e l s e p l u s de 100 end from b c r i. t b g s t f i n a n c e m e n t where rownum <= 100 Cette requête permet de retourner un contenu dans une colonne en fonction d une condition
60 60/170 Structure de contrôle Boucle de base Syntaxe LOOP d é l i m i t e u r énoncé 1 ; énoncé.... EXIT [ WHEN c o n d i t i o n ] ; énoncé EXIT END LOOP; When : condition est une variable booléenne ou expression (TRUE, FALSE, ou NULL);
61 61/170 Structure de contrôle Boucle de base Exemple Insérer 10 articles avec la date d aujourd hui.... v Date DATE; v compteur NUMBER( 2 ) := 1 ; BEGIN... v Date := SYSDATE ; LOOP INSERT INTO a r t i c l e ( Artno, ADate ) VALUES ( v compteur, v Date ) ; v compteur := v compteur + 1 ; EXIT WHEN v compteur > 1 0 ; END LOOP;...
62 62/170 Structure de contrôle Boucle FOR Syntaxe FOR i n d i c e IN [ REVERSE ] b o r n e i n f.. Borne sup LOOP énoncé 1 ; énoncé 2 ;..... END LOOP; Utiliser la boucle FOR pour raccourcir le test d un nombre d itérations Ne pas déclarer l indice, il est déclaré implicitement
63 63/170 Structure de contrôle Boucle FOR exemple Insérer Nb articles indexés de 1 à Nb avec la date du système en utilisant la boucle FOR ACCEPT Nb PROMPT Donner l e nombre a r t i c l e :... v Date DATE; BEGIN... v Date := SYSDATE ; FOR i IN 1.. &Nb LOOP INSERT INTO a r t i c l e ( Artno, ADate ) VALUES ( i, v Date ) ; END LOOP;...
64 64/170 Structure de contrôle Boucle WHILE Syntaxe WHILE c o n d i t i o n LOOP énoncé 1 ; énoncé 2 ;..... END LOOP; La condition est évaluée au début de chaque itération Utiliser la boucle WHILE pour répéter des énoncés tant que la condition est vraie
65 65/170 Structure de contrôle Boucle WHILE Exemple ACCEPT p i t e m t o t PROMPT Donner l e t o t a l max de l a c h a t d un a r t i c l e DECLARE v Date DATE; v compteur NUMBER( 2 ) := 1 ; BEGIN... v Date := SYSDATE ; WHILE v compteur <= &p i t e m t o t LOOP INSERT INTO a r t i c l e ( Artno, ADate ) VALUES ( v compteur, v Date ) ; v compteur := v compteur + 1 ; END LOOP;
66 66/170 Structure de contrôle Boucles imbriquées et Labels Imbriquer les boucles à niveaux multiples Utiliser les labels pour distinguer les blocs et les boucles Quitter la boucle extérieure avec un EXIT référençant le label
67 67/170 Structure de contrôle Boucles imbriquées et Labels.... BEGIN << bouc ext >> LOOP v compteur := v compteur + 1 ; EXIT WHEN v compteur > 1 0 ; <<b o u c i n t >> LOOP... EXIT b o u c e x t WHEN t o t a l f a i t = OUI ; q u i t t e r l e s deux b o u c l e s EXIT WHEN i n t f a i t = OUI ; q u i t t e r l a uniquement l a b o u c l e i n t e r n e... END LOOP b o u c i n t ;... END LOOP b o u c e x t ; END;...
68 68/170 Types de données complexes Types de données complexes Types : RECORDS TABLES Contiennent des composants internes Sont réutilisables
69 69/170 Types de données complexes Records Contiennent des champs qui sont soit des scalaires, des records ou des tables Structure similaire à des enregistrements dans les langages de programmation classiques Très utiles pour rechercher des lignes de données dans une table et les traiter
70 70/170 Types de données complexes Création d un record Syntaxe TYPE <Nom Enreg> I S RECORD ( Champ1 Type1.. ChampN TypeN ) ; Exemple TYPE TProd I S RECORD ( VRefPro NUMBER( 4 ), VDesPro VARCHAR2( 3 0 ), VPriUni NUMBER( 7, 2 ) ) ;
71 71/170 Types de données complexes Attribut %ROWTYPE Déclaration d une variable associée à une collection de colonnes dans une table ou une vue de la BD le nom de la table doit précéder %ROWTYPE Les champs dans le record prennent leurs noms et types des colonnes de la table ou la vue en question
72 72/170 Types de données complexes Attribut %ROWTYPE Exemples Déclarer une variable pour stocker les mêmes informations concernant une personne telles qu elles sont stockées dans la table PERS p e r s o n n e Pers%ROWTYPE; Déclarer une variable pour stocker les mêmes informations concernant un article telles qu elles sont stockées dans la table ART a r t i c l e Art%ROWTYPE;
73 73/170 Tables Tables Le type de données complexe TABLE offre au développeur un mécanisme pour traiter les tableaux Il se compose de deux colonnes : Une clé primaire de type BINARY_INTEGER Une colonne de type scalaire ou record
74 74/170 Tables Création d une table Syntaxe TYPE <Nom table> IS TABLE OF <type> INDEX BY BINARY INTEGER ; Exemple TYPE type etud nom IS TABLE OF etud. nom%type INDEX BY BINARY INTEGER ; etud nom type etud nom ;
75 75/170 Tables Structure d une table en mémoire Clé primaire Colonne 1 Ritchie 2 Marvin 3 Dennis BINARY INTEGER Scalaire
76 76/170 Tables Créer une table SQL> DECLARE 2 TYPE t y p e e t u d n o m I S TABLE OF v a r c h a r 2 ( 1 0 ) INDEX BY BINARY INTEGER ; 3 etud nom type etud nom ; 4 BEGIN 5 s e l e c t nom 6 i n t o etud nom ( 1 ) 7 from etud 8 where e t u d i d = 6 ; 9 dbms output. p u t l i n e ( etud nom ( 1 ) ) ; 10 dbms output. p u t l i n e ( etud nom ( 2 ) ) ; 11 end ; 12 / mark DECLARE ERREUR à l a l i g n e 1 : ORA 01403: Aucune donnée t r o u v é e ORA 06512: à l i g n e 10
77 77/170 Tables TABLE de RECORDS en Définit une table dont la deuxième colonne est un enregistrement au lieu d un scalaire Pour définir la deuxième colonne : Soit en utilisant l attribut %ROWTYPE Soit en utilisant un record déjà défini
78 78/170 Tables TABLE de RECORDS Exemple 1 DECLARE TYPE type etud nom I S TABLE OF etud%rowtype INDEX BY BINARY INTEGER ; etud nom type etud nom ; BEGIN SELECT nom INTO etud nom ( 1 ). nom FROM etud... END;
79 79/170 Tables TABLE de RECORDS Exemple 2 DECLARE TYPE r e c e t u d I S RECORD( i d etud. e t u d i d%type, nom etud. nom%type ) ; TYPE type etud nom I S TABLE OF r e c e t u d%rowtype INDEX BY BINARY INTEGER ; etud nom type etud nom ; BEGIN SELECT nom INTO etud nom ( 1 ). nom FROM etud... END;
80 80/170 Curseurs Les curseurs dans SQL Un curseur est une zone de travail privée de SQL (zone tampon) Il y a deux types de curseurs: Curseurs implicites Curseurs explicites Oracle utilise les curseurs implicites pour analyser et exécuter les énoncés de SQL Les curseurs explicites sont déclarés explicitement pas le programmeur
81 81/170 Curseurs Les attributs des curseurs SQL Les attributs des curseurs SQL permettent de tester les résultats des énoncés SQL SQL%ROWCOUNT SQL%FOUND SQL%NOTFOUND SQL%ISOPEN Nombre de lignes affecté par l énoncé SQL le plus récent (renvoie un entier). attribut booléen qui prend la valeur TRUE si l énoncé SQL le plus récent affecte une ou plusieurs lignes. attribut booléen qui prend la valeur TRUE si l énoncé SQL le plus récent n affecte aucune ligne. Prend toujours la valeur FALSE parce que ferment les curseurs implicites immédiatement après leur exécution.
82 82/170 Curseurs Les attributs des curseurs SQL Supprimer de la table ITEM des lignes ayant un ordre spécifié. Afficher le nombre de lignes supprimées. Exemple DECLARE BEGIN END; v o r d i d NUMBER := ; DELETE FROM item WHERE o r d i d = v o r d i d ; DBMS OUTPUT. PUT LINE (SQL%ROWCOUNT L i g n e s s u p p r i m é e s ) ; Remarque : ne pas oublier Set ServerOutput on (sous SQLPLUS)
83 83/170 Les curseurs Curseurs Chaque énoncé SQL exécuté par Oracle a son propre curseur : Curseurs implicites : déclarés pour tout énoncé SELECT du LMD ou Curseurs explicites : déclarés et nommés par le programmeur
84 84/170 Curseurs Contrôle des curseurs explicites
85 85/170 Curseurs Contrôle des curseurs explicites
86 86/170 Curseurs Déclaration des curseurs Syntaxe CURSOR nom du curseur IS un énoncé SELECT; Ne pas inclure la clause INTO dans la déclaration du curseur Si le traitement des lignes doit être fait dans un ordre spécifique, on utilise la clause ORDER BY dans la requête
87 87/170 Curseurs Déclaration des curseurs Exemple DECLARE CURSOR C1 IS SELECT RefArt, NomArt, QteArt FROM A r t i c l e WHERE QteArt < 500;
88 88/170 Curseurs Ouverture du curseur Syntaxe OPEN nom du curseur ; Ouvrir le curseur pour exécuter la requête et identifier l ensemble actif Si la requête ne renvoie aucune ligne, aucune exception n aura lieu Utiliser les attributs des curseurs pour tester le résultat du FETCH
89 89/170 Curseurs Recherche des données dans le curseur Syntaxe FETCH nom du curseur INTO [ v a r i a b l e 1, [ v a r i a b l e 2,... ] nom de record ] ; Rechercher les informations de la ligne en cours et les mettre dans des variables.
90 90/170 Curseurs Recherche des données dans le curseur Exemples FETCH c1 INTO v RefArt, v NomArt, v QteArt ;.... OPEN Cur Etud ; LOOP FETCH Cur Etud INTO Rec Etud ; { t r a i t e m e n t s des données r e c h e r c h é e s }... END LOOP;...
91 91/170 Curseurs Fermeture du curseur Syntaxe CLOSE nom du curseur ; Fermer le curseur après la fin du traitement des lignes Rouvrir le curseur si nécessaire On ne peut pas rechercher des informations dans un curseur si ce dernier est fermé
92 92/170 Curseurs Les attributs du curseur explicite Obtenir les informations d état du curseur (CUR EXP) Attribut Type Description CUR EXP%ISOPEN BOOLEAN Prend la valeur TRUE si le curseur est ouvert CUR EXP%NOTFOUND BOOLEAN Prend la valeur TRUE si le FETCH le plus récent ne retourne aucune ligne CUR EXP%FOUND BOOLEAN Prend la valeur TRUE si le FETCH le plus récent retourne une ligne CUR EXP%ROWCOUNT NUMBER Retourne le nombre de lignes traitées jusqu ici
93 93/170 Curseurs Contrôle des recherches multiples Traitement de plusieurs lignes d un curseurs en utilisant une boucle Rechercher une seule ligne à chaque itération Utiliser les attributs du curseur explicite pour tester le succès de chaque FETCH
94 94/170 Attribut %ISOPEN Curseurs La recherche des lignes n est possible que si le curseur est ouvert Utiliser l attribut %ISOPEN avant un FETCH pour tester si le curseur est ouvert ou non Exemple : I F NOT C1%ISOPEN THEN OPEN C1 END IF ; LOOP FETCH C1...
95 95/170 Curseurs Attributs %FOUND, %NOTFOUND et %ROWCOUNT Utiliser l attribut %ROWCOUNT pour fournir le nombre exact des lignes traitées Utiliser les attributs %FOUND et %NOT FOUND pour formuler le test d arrêt de la boucle
96 96/170 Curseurs Attributs %FOUND, %NOTFOUND et NOTFOUND%ROWCOUNT Exemple LOOP FETCH c u r s 1 INTO v e t u d i d, v nom ; IF c u r s 1%ROWCOUNT > 20 THEN... EXIT WHEN c u r s 1%NOTFOUND;... END LOOP;
97 97/170 Curseurs Obtenir les informations d état du curseur Exemple complet DECLARE nom emp. ename%type; s a l a i r e emp. s a l%type; CURSOR C1 IS SELECT ename, NVL( s a l, 0 ) FROM emp ; BEGIN OPEN C1 ; LOOP FETCH C1 INTO nom, s a l a i r e ; EXIT WHEN C1%NOTFOUND; DBMS OUTPUT. PUT LINE ( nom gagne s a l a i r e d o l l a r s ) ; END LOOP; CLOSE C1 ; END;
98 98/170 Curseurs Les curseurs et les Records Traitement des lignes de l ensemble actif par l affectation des valeurs à des records. Exemple... CURSOR Etud Curs IS SELECT etudno, nom, age, ard FROM etud WHERE age < 2 6 ; Etud Record Etud Curs%ROWTYPE; BEGIN END; OPEN Etud Curs ;... FETCH Etud Curs INTO Etud Record ;...
99 99/170 Curseurs Les boucles FOR des curseurs Syntaxe FOR nom record IN nom curseur LOOP t r a i t e m e n t des i n f o r m a t i o n s u t i l i s e r des o r d r e s SQL u t i l i s e r des o r d r e s PL / SQL END LOOP;... Un raccourci pour le traitement des curseurs explicites OPEN, FETCH et CLOSE se font de façon implicite Ne pas déclarer le record, il est déclaré implicitement
100 100/170 Curseurs Les boucles FOR des curseurs Exemple DECLARE CURSOR Cur Etud IS SELECT FROM Etud ; BEGIN FOR Rec Etud IN Cur Etud LOOP DBMS OUTPUT. PUT LINE ( Rec Etud. e t u d i d Rec Etud. nom Rec Etud. adr ) ; END LOOP; END; /
101 101/170 Exceptions Manipulation des exceptions en Le traitement des exceptions : mécanisme pour manipuler les erreurs rencontrées lors de l exécution Possibilité de continuer l exécution si l erreur n est pas suffisamment importante pour produire la terminaison de la procédure Décision de continuer une procédure après erreur : décision que le développeur doit faire en fonction des erreurs possibles
102 102/170 Exceptions Types des exceptions Déclenchées implicitement Exceptions Oracle prédéfinies Exceptions Oracle Non-prédéfinies Déclenchées explicitement Exceptions définies par l utilisateur
103 103/170 Exceptions Capture des exceptions Syntaxe EXCEPTION WHEN e x c e p t i o n 1 [OR e x c e p t i o n 2... ] THEN énoncé1 ; énoncé2 ;... [WHEN e x c e p t i o n 2 [OR e x c e p t i o n 4... ] THEN énoncé3 ; énoncé4 ;... ] [WHEN OTHERS THEN énoncé5 ; énoncé6 ;... ]
104 104/170 Exceptions Capture des exceptions prédéfinies Faire référence au nom dans la partie traitement des exceptions Quelques exceptions prédéfinies : NO DATA FOUND TOO MANY ROWS INVALID CURSOR ZERO DIVIDE DUP VAL ON INDEX
105 105/170 Exceptions Exceptions prédéfinies Exemple BEGIN... EXCEPTION WHEN NO DATA FOUND THEN énoncé1 ; énoncé2 ; DBMS OUTPUT. PUT LINE (TO CHAR ( etudno ) Non v a l i d e ) ; WHEN TOO MANY ROWS THEN énoncé3 ; énoncé4 ; DBMS OUTPUT. PUT LINE ( Données i n v a l i d e s ) ; WHEN OTHERS THEN énoncé5 ; énoncé6 ; DBMS OUTPUT. PUT LINE ( A u t r e s e r r e u r s ) ;
106 106/170 Exceptions Capture des exceptions définies par l utilisateur
107 107/170 Exceptions Capture des exceptions non-prédéfinies Exemple Capture de l erreur n 2291 (violation de la contrainte intégrité). DECLARE c o n t i n t e g r i t v i o l EXCEPTION; PRAGMA EXCEPTION INIT ( c o n t i n t e g r i t v i o l, 2291);... BEGIN... EXCEPTION WHEN c o n t i n t e g r i t v i o l THEN DBMS OUTPUT. PUT LINE ( v i o l a t i o n de c o n t r a i n t e d i n t é g r i t é ) ;... END;
108 108/170 Exceptions Capture des exceptions définies par l utilisateur
109 109/170 Exceptions Exceptions définies par l utilisateur Exemple DECLARE x number : =... ; x t r o p p e t i t EXCEPTION;... BEGIN... IF x < 5 THEN RAISE x t r o p p e t i t ; END IF ;... EXCEPTION WHEN x t r o p p e t i t THEN DBMS OUTPUT. PUT LINE ( l a v a l e u r de x e s t t r o p p e t i t e!! ) ;... END;
110 110/170 Exceptions Fonctions pour capturer les exceptions SQLCODE : Retourne la valeur numérique du code de l erreur SQLERRM : Retourne le message associé au numéro de l erreur
111 111/170 Exceptions Fonctions pour capturer les exceptions Exemple... v c o d e e r r e u r NUMBER; v m e s s a g e e r r e u r VARCHAR2( ) ; BEGIN... EXCEPTION... WHEN OTHERS THEN... v c o d e e r r e u r := SQLCODE; v m e s s a g e e r r e u r := SQLERRM; INSERT INTO e r r e u r s VALUES ( v c o d e e r r e u r, v m e s s a g e e r r e u r ) ; END;
112 112/170 Sous-programmes Les sous-programmes Un sous programme est une séquence d instruction qui possède un nom On distingue deux types de sous programmes : Les procédures Les fonctions
113 113/170 Sous-programmes Les sous-programmes Une procédure : sous programme qui ne retourne des résultats seulement dans ses paramètres Une fonction : sous programme qui retourne des résultats dans : Le nom de la fonction Les paramètres de la fonction
114 114/170 Sous-programmes Les procédures Syntaxe DECLARE... PROCEDURE <Nom Proc >[(P1,..., Pn ) ] [ D é c l a r a t i o n s l o c a l e s ] BEGIN... EXCEPTION... END; BEGIN / Appel de l a p r o c é d u r e /... EXCEPTION... END ; / IS
115 115/170 Sous-programmes Les procédures Syntaxe des paramètres P1,...,Pn suivent la syntaxe : <Nom Arg> [ IN OUT IN OUT] <Type> Où : IN : Paramètre d entrée OUT : Paramètre de sortie IN OUT : Paramètre d entrée/sortie Par défaut le paramètre est IN
116 116/170 Sous-programmes Les procédures Exemple DECLARE PROCEDURE NouvSal (PNum IN Emp. Emp Id %Type, PAug NUMBER ) I S VSal NUMBER ( 7, 2 ) ; BEGIN SELECT S a l INTO VSal FROM Emp WHERE emp Id=PNum; UPDATE Emp SET S a l = VSal+PAug WHERE Emp Id=PNum; COMMIT; EXCEPTION WHEN NO DATA FOUND THEN DBMS OUTPUT. PUT LINE ( Employé i n e x i s t a n t ) ; END; BEGIN NouvSal ( , ) ; EXCEPTION WHEN OTHERS THEN DBMS OUTPUT. PUT LINE ( E r r e u r ) ; END ; /
117 117/170 Sous-programmes Les procédures Exemple DECLARE VErr NUMBER ; PROCEDURE NouvSal (PNum Emp. Emp Id %TYPE, PAug NUMBER, PErr OUT NUMBER ) I S VSal NUMBER ( 7, 2 ) ; BEGIN SELECT S a l INTO VSal FROM Emp WHERE emp Id=PNum; UPDATE Emp SET S a l = VSal+PAug WHERE Emp Id=PNum; COMMIT; PErr :=0 EXCEPTION WHEN NO DATA FOUND THEN PErr :=1 ; END;
118 118/170 Sous-programmes Les procédures Exemple BEGIN NouvSal ( , 5 0 0, VErr ) ; IF VErr = 0 THEN DBMS OUTPUT. PUT LINE ( O p é r a t i o n E f f e c t u é e ) ; ELSE DBMS OUTPUT. PUT LINE ( Employé i n e x i s t a n t ) ; END IF ; EXCEPTION WHEN OTHERS THEN DBMS OUTPUT. PUT LINE ( E r r e u r ) ; END ; /
119 119/170 Sous-programmes Les fonctions Syntaxe DECLARE [ D é c l a r a t i o n s g l o b a l e s ] FUNCTION <Nom fonc >[(P1,..., Pn ) ] RETURN Type I S [ D é c l a r a t i o n s l o c a l e s ] BEGIN... RETURN v a l e u r ; EXCEPTION... END; BEGIN Appel a l a f o n c t i o n.... EXCEPTION... END ; /
120 120/170 Sous-programmes Les fonctions Exemple DECLARE VNomComplet VARCHAR2( 4 0 ) ; FUNCTION NomComplet (PNum Emp. Emp I d%type, PErr OUT NUMBER ) RETURN VARCHAR2 I S VLastName Emp. Last Name %Type ; VFirstName Emp. F i r s t N a m e %Type ; BEGIN SELECT Last Name, F i r s t N a m e INTO VLastName, VFirstName WHERE Emp Id=PNum; PErr : =0; RETURN VLastName VFirstName ; EXCEPTION WHEN NO DATA FOUND THEN PErr :=1; RETURN N u l l ; END ;
121 121/170 Sous-programmes Les fonctions Exemple BEGIN VNomComplet:= NomComplet(&Num, VErr ) ; IF VErr = 0 THEN DBMS OUTPUT. PUT LINE ( Nom Complet e s t : VNomComplet ) ; ELSE DBMS OUTPUT. PUT LINE ( Employé i n e x i s t a n t ) ; END IF ; EXCEPTION WHEN OTHERS THEN DBMS OUTPUT. PUT LINE ( E r r e u r ) ; END ;
122 122/170 Sous-programmes Le paramètre IN OUT Paramètre jouant le rôle des deux paramètre IN et OUT Obligatoire de le spécifier Exemple : SQL> Create or r e p l a c e p r o c e d u r e affnom ( v nom IN OUT v a r c h a r 2 ) I S 2 BEGIN 3 v nom := UPPER ( v nom ) ; 4 END affnom ; 5 / P r o c é d u r e c r é é e.
123 123/170 Sous-programmes Appel de affnom de SQL*Plus Définition d une variable liée Initialisation de la variable SQL> v a r name varchar2 ( 1 0 ) ; SQL> begin : name := mark ; end ; / Procédure t e r m i n é e avec s u c c è s SQL> p r i n t name NAME mark
124 124/170 Sous-programmes Appel de affnom de SQL*Plus Exécution de la procédure avec un paramètre IN OUT Affichage la nouvelle valeur de la variable SQL> execute affnom ( : name ) ; Procédure t e r m i n é e avec s u c c è s. SQL> p r i n t name NAME MARK
125 125/170 Sous-programmes Passage de paramètres Il y a plusieurs façons de passage de paramètres : Appel de la procédure en spécifiant les paramètres Appel de la procédure sans paramètre si ce dernier est un paramètre d entrée initialisé Appel de la procédure en changeant la position des paramètres (il faut spécifier le nom du paramètre)
126 126/170 Sous-programmes Passage de paramètres Exemple CREATE OR REPLACE PROCEDURE r e n s e i g n e t u d ( v nom IN etud. nom%type d e f a u l t inconnu, v a d r IN etud. adr%type d e f a u l t inconnu ) IS BEGIN INSERT INTO etud VALUES ( e t u d e t u d i d. n e x t v a l, v nom, v a d r ) ; END;
127 127/170 Sous-programmes Passage de paramètres Exemple SQL> begin 2 r e n s e i g n e t u d ( mark, p a r i s ) ; 3 r e n s e i g n e t u d ; 4 r e n s e i g n e t u d ( v a d r => l y o n ) ; 5 end ; 6 / Procédure t e r m i n é e avec s u c c è s. SQL> s e l e c t from etud ; ETUDID NOM ADR 6 mark p a r i s 7 inconnu inconnu 8 inconnu l y o n SQL>
128 128/170 Sous-programmes Les procédures et les fonctions stockées Sont des blocs qui possèdent un nom Consistent à ranger le block compilé dans la base de données (CREATE) Peuvent être réutilisées sans être recompilées (EXECUTE) Peuvent être appelées de n importe bloc Peuvent être regroupées dans un package
129 129/170 Sous-programmes Les procédures stockées Syntaxe CREATE [ OR REPLACE ] PROCEDURE <Nom Proc >[(P1,..., Pn ) ] [ D é c l a r a t i o n s des v a r i a b l e s l o c a l e s ] BEGIN... EXCEPTION... END; / Procedure Created : La procédure est correcte Ou Procedure Created with compilation errors : Corriger les erreurs SHOW ERRORS;
130 130/170 Sous-programmes Les procédures stockées Exemple CREATE [ OR REPLACE ] PROCEDURE AjoutProd ( P r e f P r o Prod. RefPro%TYPE,... PPriUni Prod. P r i U n i% TYPE, PErr OUT Number) IS BEGIN INSERT INTO Prod VALUES( PrefPro,..., PPriUni ) ; COMMIT; PErr :=0; EXCEPTION WHEN DUP VAL ON INDEX THEN PErr :=1; / END;
131 131/170 Sous-programmes Appel des procédures stockées Syntaxe La procédure stockée est appelée par les applications soit : En utilisant son nom dans un bloc (autre procédure) Par execute dans SQL*Plus Dans un bloc : DECLARE BEGIN END; Sous SQL*PLUS : <Nom Procedure >[<P1 >,..., < Pn >]; EXECUTE <Nom Procedure >[<P1 >,..., <Pn >];
132 132/170 Sous-programmes Appel des procédures stockées Exemple ACCEPT VRefPro... ACCEPT VPriUni... DECLARE VErr NUMBER; BEGIN AjoutProd (&VRefPro,..., & VPriUni, VErr ) ; I F VErr=0 THEN DBMS OUTPUT. PUT LINE ( O p é r a t i o n E f f e c t u e r ) ; ELSE DBMS OUTPUT. PUT LINE ( E r r e u r ) ; END IF ; END ; /
133 133/170 Sous-programmes Les fonctions stockées Syntaxe CREATE [ OR REPLACE ] FUNCTION <Nom Fonc >[(P1,..., Pn ) ] RETURN Type I S [ D é c l a r a t i o n s des v a r i a b l e s l o c a l e s ] BEGIN I n s t r u c t i o n s SQL e t PL/ Sql RETURN( V a l e u r ) EXCEPTION Traitement des e x c e p t i o n s END; / function Created : La fonction est correcte Ou function Created with compilation errors : Corriger les erreurs SHOW ERRORS;
134 134/170 Sous-programmes Les fonctions stockées Exemple CREATE [ OR REPLACE ] FUNCTION NbEmp (PNumDep Emp. D e p t I d%type, PErr Out Number ) Return Number I S VNb Number ( 4 ) ; BEGIN S e l e c t Count ( ) I n t o VNb From Emp Where D e p t I d=pnumdep ; PErr :=0 Return VNb ; E x c e p t i o n When No Data Found PErr :=1; Return N u l l ; Then END; /
135 135/170 Sous-programmes Appel des fonctions stockées Syntaxe La fonction stockée est appelée par les applications soit : Dans une expression dans un bloc Dans une expression dans par la commande EXECUTE (dans SQL*PLUS) Dans un bloc : DECLARE BEGIN END; Sous SQL*PLUS : <var> := <Nom fonction >[<P1 >,..., < Pn>] EXECUTE :< var> := <Nom fonction> [<P1 >,..., < Pn>]
136 136/170 Sous-programmes Appel des fonctions stockées Exemple Accept VDep... Declare VErr Number ; VNb Number ( 4 ) ; Begin VNb :=NbEmp(&VDep, VErr ) ; I f VErr=0 Then DBMS Output. P u t L i n e ( Le nombre d employées e s t : VNb ) ; E l s e DBMS Output. P u t L i n e ( E r r e u r ) ; End I f ; End ; /
137 137/170 Sous-programmes Appel des fonctions stockées Exemple SQL> VARIABLE VNb SQL> EXECUTE : VNb:=NbEmp(&VDep, VErr ) ; Procédure t e r m i n é e avec s u c c è s. SQL> PRINT VNb VNB 300
138 138/170 Sous-programmes Suppression des procédures et des fonctions stockées Syntaxe Comme tout objet manipulé par Oracle, les procédures et les fonctions peuvent être supprimées si nécessaire Cette suppression est assurée par la commande suivante : DROP PROCEDURE nomprocedure ; DROP FUNCTION nomfonction ;
139 139/170 Sous-programmes Suppression des procédures et des fonctions stockées Exemple SQL> DROP PROCEDURE AjoutProd ; Procedure dropped. SQL> DROP FUNCTION NbEmp ; F u n c t i o n dropped.
140 140/170 Sous-programmes Les procédures et les fonctions stockées Quelques commandes utiles : SELECT object name, o b j e c t t y p e from o b j ; DESC nomprocedure DESC nomfonction
141 141/170 Les packages Packages Un objet qui stocke d autres types d objet : procédures, fonctions, curseurs, variables,... Consiste en deux parties : Spécification (déclaration) Corps (implémentation) Ne peut pas être appelé, ni paramétré ni imbriqué Permet à Oracle de lire plusieurs objets à la fois en mémoire
142 142/170 Packages Développement des packages Sauvegarder l énoncé de CREATE PACKAGE dans deux fichiers différents (ancienne/dernière version) pour faciliter de éventuelles modifications Le corps du package ne peut pas être compilé s il n est pas déclaré (spécifié) Restreindre les privilèges pour les procédures à une personne donnée au lieu de lui donner tout les droits sur toutes les procédures
143 143/170 Packages La spécification du package Syntaxe Contient la déclaration des curseurs, variables, types, procédures, fonctions et exceptions CREATE [OR REPLACE ] PACKAGE <Nom Package> IS [ D é c l a r a t i o n des v a r i a b l e s e t Types ] [ D é c l a r a t i o n des c u r s e u r s ] [ D é c l a r a t i o n des p r o c é d u r e s e t f o n c t i o n s ] [ D é c l a r a t i o n des e x c e p t i o n s ] END[<Nom Package >]; /
144 144/170 Packages La spécification du package Exemple Create Or Replace Package PackProd I s Cursor CProd I s Select RefPro, DesPro From P r o d u i t ; Procedure AjoutProd ( PrefPro Prod. RefPro%Type,..., PErr Out Number ) ; Procedure ModifProd ( PrefPro Prod. RefPro%Type,..., PErr Out Number ) ; Procedure SuppProd ( PrefPro Prod. RefPro%Type,..., PErr Out Number ) ; Procedure AffProd ; EndPackProd ; /
145 145/170 Packages Le corps du package Syntaxe On implémente les procédures et fonctions déclarées dans la spécification Create [ Or Replace ] Package Body <Nom Package> I s [ I m p l é m e n t a t i o n p r o c é d u r e s f o n c t i o n s ] End [<Nom Package >]; /
146 146/170 Packages Le corps du package Syntaxe Create Or Replace Package Body PackProd I s Procedure AjoutProd ( PrefPro Prod. RefPro%Type,..., PErr Out Number) I s Begin I n s e r t Into Prod Values ( PrefPro,..., PPriUni ) ; Commit ; PErr :=0; Exception When Dup Val On Index Then PErr :=1; When Others Then PErr := 1 ; End ;
147 147/170 Packages Le corps du package Syntaxe Procedure ModifProd ( PrefPro Prod. RefPro%Type,..., PErr Out Number) I s B Boolean ; Begin... EndPackProd ; /
148 148/170 Packages Appels des procédures / fonctions du package Syntaxe Les procédures et les fonctions définies dans un package sont appelées de la façon suivante : <NomPackage>.<NomProcedure >[( Paramètres ) ] ; Var := <NomPackage>.<NomFonction >[( Paramètres ) ] ;
149 149/170 Packages Appels des procédures / fonctions du package Exemple Accept VRef Prompt ; Accept VPri Prompt ; Declare VErr Number ; Begin PackProd. ModifProd(&VRef,..., &VPri, VErr ) ; End ; / I f VErr= 0 Then DBMS Output. P u t L i n e ( Traitement e f f e c t u é ) ; Else DBMS Output. P u t L i n e ( E r r e u r ) ; End I f ;
150 150/170 Packages Packages : Exemples Création le corps du package suivant en mode interactif : SQL> create or r e p l a c e package body pack1 i s 2 f u n c t i o n d o u b l e x ( x number ) r e t u r n number i s 3 begin 4 r e t u r n (2 x ) ; 5 end ; 6 end ; 7 / A v e r t i s s e m e n t : Corps de package c r é é avec e r r e u r s de c o m p i l a t i o n.
151 151/170 Packages Packages : Exemples Pour afficher les erreurs on utilise la commande SHOW ERRORS SQL> show e r r o r s E r r e u r s pour PACKAGE BODY PACK1 : LINE/COL ERROR 0/0 : C o m p i l a t i o n u n i t a n a l y s i s t e r m i n a t e d 1/14 PLS 00201: l i d e n t i f i c a t e u r PACK1 d o i t ê t r e d é c l a r é 1/14 PLS 00304: i m p o s s i b l e de c o m p i l e r l e c o r p s de PACK1 s a n s p é c i f i c a t i o n SQL>
152 152/170 Triggers Les triggers (Déclencheurs) Un trigger est un programme qui s exécute automatiquement avant ou après une opération LMD (Insert, Update, Delete) Contrairement aux procédures, un trigger est déclenché automatiquement suite à un ordre LMD
153 153/170 Triggers Evénement-Condition-Action Un trigger est activé par un événement Insertion, suppression ou modification sur une table Si le trigger est activé, une condition est évaluée Prédicat qui doit retourner vrai Si la condition est vraie, l action est exécutée Insertion, suppression ou modification de la base de données
154 154/170 Triggers Composants du trigger À quel moment se déclenche le trigger? BEFORE : le code dans le corps du triggers s exécute avant les évènements de déclenchement LMD AFTER : le code dans le corps du triggers s exécute avant les évènements de déclenchement LMD
155 155/170 Triggers Composants du trigger Les évènements du déclenchement : Quelles sont les opérations LMD qui causent l exécution du trigger? INSERT UPDATE DELETE La combinaison des ces opérations
156 156/170 Triggers Composants du trigger Le corps du trigger est défini par un bloc anonyme [DECLARE] BEGIN [ EXEPTION ] END;
157 157/170 Triggers Composants du trigger Syntaxe Create [ Or Replace ] Trigger <Nom Trigger> [ B e f o r e A f t e r ] <O p é r a t i o n DML> On <Nom Table> [ For Each Row ] [ When <C o ndition >] Declare Begin Exception End ; /
158 158/170 Triggers Composants du trigger Exemple Création d un trigger qui remplit la table statistique (Nom Table Nb Insert) lors d une insertion dans la table facture Create Or R e p l a c e Trigger S t a r t F a c t u r e A f t e r I n s e r t On F a c t u r e For Each Row Declare VNbInsert Number ; Begin S e l e c t N b I n s e r t Into VNbInsert From S t a t i s t i q u e Where Nom Table= F a c t u r e ; Update S t a t i s t i q u e Set N b I n s e r t = VNbInsert+1 Where Nom Table= F a c t u r e ; Exception When No Data Found Then I n s e r t Into S t a t i s t i q u e Values ( 1, F a c t u r e ) ; End ; /
159 159/170 Triggers Manipulation des triggers Activer ou désactiver un Trigger: Alter Trigger <Nom Trigger> [ Enable D i s a b l e ] ; Supprimer un Trigger: Drop Trigger <Nom Trigger >; Déterminer les triggers de votrebd: Select Trigger Name From U s e r T r i g g e r s
160 160/170 Triggers Les attributs :Old et :New Ces deux attributs permettent de gérer l ancienne et la nouvelle valeurs manipulées Insert(...)... New Delete... Where(...)... Old Update... Set (...)... New Where(...)... Old
161 161/170 Exemple : Triggers Les attributs :Old et :New E t u d i a n t ( Matr Etu, Nom,..., Cod Cla ) C l a s s e ( Cod Cla, Nbr Etu ) Trigger mettant à jour la table classe suite à une insertion d un nouvel étudiant Create or Replace Trigger MajNbEtud A f t e r I n s e r t On E t u d i a n t For Each Row Begin Update C l a s s e Set Nbr Etud = Nbr Etud+1 Where Cod Cla =:New. Cod Cla ; End ; /
162 162/170 Triggers Les prédicats inserting, updating et deleting Inserting: True: Le trigger est déclenché suite à une insertion False: Sinon Updating: True: le trigger est déclenché suite à une mise à jour False: sinon Deleting: True: le trigger est déclenché suite à une suppression False: sinon
163 163/170 Triggers Les prédicats inserting, updating et deleting Exemple Create Or Replace Trigger MajNbEtud A f t e r I n s e r t Or Delete On E t u d i a n t For Each Row Begin I f I n s e r t i n g Then Update C l a s s e Set Nbr Etud = Nbr Etud+1 Where Cod Cla =:New. Cod Cla ; End I f ; I f D e l e t i n g Then Update C l a s s e Set Nbr Etud = Nbr Etud 1 Where Cod Cla =: Old. Cod Cla ; End I f ; End ; /
164 164/170 Séquences Séquences Syntaxe Auto-incrémentation d une colonne (évite les doublons) Définition : CREATE SEQUENCE sequence name [INCREMENT BY #] [START WITH #] [ MAXVALUE # NOMAXVALUE] [ MINVALUE # NOMINVALUE] [ CYCLE NOCYCLE] Suppression DROP SEQUENCE sequence name Pseudo-colonne CURRVAL : Valeur courante de la séquence Pseudo-colonne NEXTVAL : Incrémentation de la séquence et retourne la nouvelle valeur
165 165/170 Séquences Exemple Séquences drop sequence SEQ ANNOTATION ; create sequence SEQ ANNOTATION s t a r t with 1 i n c r e m e n t by 1 n o c y c l e maxvalue INSERT INTO p r o f ( prof num, prof nom, prof prenom ) VALUES (SEQ ANNOTATION. NEXTVAL, Dupond Michel ) SELECT s e q a n n o t a t i o n. CURRVAL from d u a l ;
166 166/170 SQL dynamique SQL dynamique Construction dans un programme une requête SQL avant de l exécuter Possibilité de création d un code générique et réutilisable (sinon simple paramètrage de valeur de remplacement de la clause where) Execute immediate chaine_de_caractères ; chaine_de_caractères est une commande sql donnée entre...
167 167/170 SQL dynamique SQL dynamique Exemple 1 : Begin Execute immediate c r e a t e t a b l e t e s t ( c o l 1 : number ) ; ; End ; Exemple 2 : Declare W req varchar2 ( ) ; Begin w req := c r e a t e t a b l e t e s t ( c o l 1 : number ) ; ; Execute immediate w r e q ; End ;
168 168/170 Contrôle de transactions Contrôle de transactions Commandes COMMIT et ROLLBACK Lancer une transaction avec la première commande du LMD à la suite d un COMMIT ou un ROLLBACK Utiliser le COMMIT ou le ROLLBACK de SQL pour terminer une transaction
169 169/170 Contrôle de transactions Commande ROLLBACK
170 170/170 Contrôle de transactions Contrôle de transactions Déterminer le traitement des transactions pour le bloc suivant BEGIN END; INSERT INTO temp ( num col1, num col2, c h a r c o l ) VALUES ( 1, 1, ROW 1 ) ; SAVEPOINT a ; INSERT INTO temp ( num col1, num col2, c h a r c o l ) VALUES ( 2, 2, ROW 2 ) ; SAVEPOINT b ; INSERT INTO temp ( num col1, num col2, c h a r c o l ) VALUES ( 3, 3, ROW 3 ) ; SAVEPOINT c ; ROLLBACK TO SAVEPOINT b ; COMMIT;
Bases de Données Avancées PL/SQL
1/170 Bases de Données Avancées Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017
Plus en détailLangage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL
Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions
Plus en détailModule Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS
Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)
Plus en détailBases de données avancées
Bases de données avancées Jean-Yves Antoine LI - Université François Rabelais de Tours Jean-Yves.Antoine@univ-tours.fr UFR Sciences et Techniques IUP SIR Blois Master 1 Bases de Données avancées IUP Blois,
Plus en détailTP Contraintes - Triggers
TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution
Plus en détailCOMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2
SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES
Plus en détailLe Langage SQL version Oracle
Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn
Plus en détailLangage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes
Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition
Plus en détailLes Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.
Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger
Plus en détailOracle Le langage procédural PL/SQL
Oracle Le langage procédural PL/SQL Denis Roegel roegel@loria.fr IUT Nancy 2 1998/1999 Sommaire 1 Introduction 3 2 Création de packages 3 2.1 Procédures groupées.........................................
Plus en détailCours Bases de données 2ème année IUT
Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions
Plus en détailDevoir Data WareHouse
Université Paris XIII Institut Galilée Master 2-EID BENSI Ahmed CHARIFOU Evelyne Devoir Data WareHouse Optimisation, Transformation et Mise à jour utilisées par un ETL Mr R. NEFOUSSI Année 2007-2008 FICHE
Plus en détailLe langage SQL pour Oracle - partie 1 : SQL comme LDD
Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger
Plus en détailIntroduction au PL/SQL Oracle. Alexandre Meslé
Introduction au PLSQL Oracle Alexandre Meslé 17 octobre 2011 Table des matières 1 Notes de cours 3 1.1 Introduction au PLSQL............................................ 3 1.1.1 PLSQL.................................................
Plus en détailCours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry
Cours 3 Développement d une application BD 1 Plan du cours Gestion de la sécurité des données Optimisation des schémas de bases via la dénormalisation Utilisation de vues Placement du code applicatif dans
Plus en détailBases de Données relationnelles et leurs systèmes de Gestion
III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation
Plus en détailECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;
RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines
Plus en détailOlivier Mondet http://unidentified-one.net
T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage
Plus en détailPrésentation du PL/SQL
I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur
Plus en détailLaboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN
Département Informatique Laboratoires de bases de données Laboratoire n 6 Programmation SQL par Danièle BAYERS et Louis SWINNEN Ce document est disponible sous licence Creative Commons indiquant qu il
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailLe langage procédural PL-PGSQL
Le langage procédural PL-PGSQL PL/pgSQL est un langage procédural utilisé dans le système de gestion de bases de données PostgreSQL. Objectifs : créer des fonctions standards et triggers, ajouter des structures
Plus en détail1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5
1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases
Plus en détail//////////////////////////////////////////////////////////////////// Administration bases de données
////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données
Plus en détailCREATION WEB DYNAMIQUE
CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de
Plus en détailSQL Historique 1982 1986 1992
SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse
Plus en détailA.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW
A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca
Plus en détailORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010
ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle
Plus en détailCréation et Gestion des tables
Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5
Plus en détailA QUOI SERVENT LES BASES DE DONNÉES?
BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès
Plus en détailLe Langage De Description De Données(LDD)
Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,
Plus en détailCorrigés détaillés des exercices
Corrigés détaillés des exercices Diagramme des tables objet La figure suivante vous aidera dans la compréhension des manipulations des objets de la base. Client_type Client num nom adresse {telephone_vry}
Plus en détailLicence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées
Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :
Plus en détailOptimisation SQL. Quelques règles de bases
Optimisation SQL Quelques règles de bases Optimisation des ordres SQL Page 2 1. QUELQUES RÈGLES DE BASE POUR DES ORDRES SQL OPTIMISÉS...3 1.1 INTRODUCTION...3 1.2 L OPTIMISEUR ORACLE...3 1.3 OPTIMISEUR
Plus en détailCours Bases de données 2ème année IUT
Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage
Plus en détailAdministration des bases de données
Administration des bases de données Mehdi Louizi 1 Pourquoi PL/SQL 2 Pourquoi PL/SQL? PL/SQL = PROCEDURAL LANGUAGE/SQL SQL est un langage non procédural Les traitements complexes sont parfois difficiles
Plus en détailBases de données et sites WEB
Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues
Plus en détailPour les débutants. langage de définition des données
Pour les débutants SQL : langage de définition des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont
Plus en détailPHP 5. La base de données MySql. A. Belaïd 1
PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple
Plus en détailA QUOI SERVENT LES BASES DE DONNÉES?
BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès
Plus en détailLangage SQL : créer et interroger une base
Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,
Plus en détailQuelques aspects du Relationnel-Objet du SGBD Oracle
Département informatique de l IUT (de l université) de Bordeaux Cours de Bases de Données : présentation partielle d un SGBD RO 12 août 2015 Olivier Guibert Quelques aspects du Relationnel-Objet du SGBD
Plus en détailBases de données. Mihaela Mathieu
Bases de données 2004-2005 Mihaela Mathieu mathieu@emse.fr Objectifs : comprendre et maîtriser les fonctions d un SGBD relationnel (Oracle et MySQL) connaître le langage SQL savoir développer une application
Plus en détailAdministration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/
Administration des bases de données Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données II Objets avancés dans les bases de données OBJECTIFS 2.1. NOTIONS 2.1.1.
Plus en détailLes bases de données
Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive
Plus en détail14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.
Gaëlle PERRIN SID2 Grenoble Le 10/04/2014 Base de Données (BD) : une grande quantité de données, centralisées ou non, servant pour les besoins d'une ou plusieurs applications, interrogeables et modifiables
Plus en détailIntégrité sémantique dans les bases de données relationnelles
Intégrité sémantique dans les bases de données relationnelles 1 - Intégrité sémantique Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU Ecole Polytechnique Universitaire de Marseille Fev. 2013
Plus en détailGestion des utilisateurs et de leurs droits
Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE
Plus en détailPL langage de programmation côté serveur. SQL à la base : types, expressions, requêtes
Introduction à PL langage de programmation côté serveur installation nécessaire : CREATE LANGUAGE ou createlang interprété : erreurs de syntaxe possibles à l exécution SQL à la base : types, expressions,
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailBases de données relationnelles
Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailBases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications
Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/
Plus en détailLe langage SQL (première partie) c Olivier Caron
Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)
Plus en détailIntroduction au Système de Gestion de Base de Données et aux Base de Données
Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière
Plus en détailIFT3030 Base de données. Chapitre 2 Architecture d une base de données
IFT3030 Base de données Chapitre 2 Architecture d une base de données Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées
Plus en détailMysql avec EasyPhp. 1 er mars 2006
Mysql avec EasyPhp 1 er mars 2006 Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requètes vers les bases de données relationnelles. Il en reprend la syntaxe
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailIntégrité des données
. Contraintes d intégrité : Définition et objectif Intégrité des données Définition des contraintes Vérification des contraintes Contrainte d'intégrité : propriété sémantique que doivent respecter les
Plus en détailISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL
ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL Jean-Marie Pécatte jean-marie.pecatte@iut-tlse3.fr 16 novembre 2006 ISIS - Jean-Marie PECATTE 1 Valeur de clé
Plus en détailGénie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailNotes de cours : bases de données distribuées et repliquées
Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées
Plus en détailAuto-évaluation Oracle: cours de base
Auto-évaluation Oracle: cours de base Document: F0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION ORACLE: COURS DE
Plus en détailOpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Plus en détailChapitre 5 : Les procédures stockées PL/SQL
I. Introduction Une procédure ou une fonction stockée est un bloc PL/SQL nommé pouvant accepter des paramètres et être appelée. Généralement, on utilise une fonction pour calculer une valeur. Les procédures
Plus en détailBases de Données Réparties
Bases de Données Réparties Architecture Mise en œuvre Duplication et Réplication Michel Tuffery BDR : Définition Ensemble de bases de données gérées par des sites différents et apparaissant à l utilisateur
Plus en détailConfigurer la supervision pour une base MS SQL Server Viadéis Services
Configurer la supervision pour une base MS SQL Server Référence : 11588 Version N : 2.2 : Créé par : Téléphone : 0811 656 002 Sommaire 1. Création utilisateur MS SQL Server... 3 2. Configuration de l accès
Plus en détailVues: définition. Vues: avantages. Vues: inconvénients. Vues: exemple. Vues: syntaxe 08/12/2009
Vues: définition Table virtuelle de la base de données dont le contenu est défini par un requête La vue n existe pas en tant qu ensemble de données stockées sur le disque seule la requête décrivant la
Plus en détailLes BASES de DONNEES dans WampServer
Les BASES de DONNEES dans WampServer 1 Définitions Générales Une base de données (BDD) permet d'enregistrer, de stocker, de ranger des données de façon organisée et hiérarchisée. SQL est le langage qui
Plus en détailPrésentation du module Base de données spatio-temporelles
Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes
Plus en détailFileMaker 13. Guide de référence SQL
FileMaker 13 Guide de référence SQL 2013 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et Bento sont des marques commerciales de
Plus en détailPlan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions
Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]
Plus en détailTP3 : Creation de tables 1 seance
Universite de Versailles IUT de Velizy - Algorithmique 2005/2006 TP3 : Creation de tables 1 seance Objectif : Creation et modication de tables dans une base de donnees. Avant de commencer ce TP, terminer
Plus en détailLES TYPES DE DONNÉES DU LANGAGE PASCAL
LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.
Plus en détailCompétences Business Objects - 2014
Compétences Business Objects - 2014 «Mars-Juin 2014. Réf : Version 1 Page 1 sur 34 Sommaire CONTEXTE DE LA REMISE A NIVEAU EN AUTOFORMATION... 3 1. MODELISATION... 4 1.1 DESCRIPTION FONCTIONNEL DE L'APPLICATION
Plus en détail1 Introduction et installation
TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en détail1 Position du problème
Licence Science et Technologies - INF245 Examen session 1 - mai 2012 Durée : 2 heures Documents non autorisés Le barème est donné à titre indicatif 1 Position du problème Le Club Universitaire de Vélo
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailLe langage SQL Rappels
Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,
Plus en détail4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailSupport de cours «SGBD»
Direction Générale Institut Supérieur des Des Etudes Technologiques Etudes ******** DGET ******* Technologiques du Kef Support de cours «SGBD» Réalisé par : BOUKCHIM Mosaab (AT-Iset de Kef) HOSNI Anis
Plus en détailUtilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008
Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application
Plus en détailHistorisation des données
Historisation des données Partie 1 : mode colonne par Frédéric Brouard, alias SQLpro MVP SQL Server Expert langage SQL, SGBDR, modélisation de données Auteur de : SQLpro http://sqlpro.developpez.com/ "SQL",
Plus en détailGestion de base de données
Université Libre de Bruxelles Faculté de Philosophie et Lettres Département des Sciences de l Information et de la Communication Gestion de base de données Projet : Take Off ASBL Cours de M. A. Clève STIC-B-505
Plus en détailCours SQL. Base du langage SQL et des bases de données
Cours SQL Base du langage SQL et des bases de données Auteur Tony Archambeau Site web http://sql.sh Date 24 mai 2014 Licence Mis à disposition selon les termes de la licence Creative Commons Attribution
Plus en détailPartie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle
Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle Ce projet comporte trois parties sur les thèmes suivants : création de base de donnée, requêtes SQL, mise en œuvre
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détail16H Cours / 18H TD / 20H TP
INTRODUCTION AUX BASES DE DONNEES 16H Cours / 18H TD / 20H TP 1. INTRODUCTION Des Fichiers aux Bases de Données 2. SYSTEME DE GESTION DE BASE DE DONNEES 2.1. INTRODUCTION AUX SYSTEMES DE GESTION DE BASES
Plus en détailInitiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012
Initiation à SQL Le langage de communication avec une base de données relationnelles Application avec PostgreSQL Nathalie Camelin 2011/2012 Université du Maine Institut Claude Chappe D'après Levy Estève
Plus en détailIntroduction aux Bases de Données 2004/2005
Introduction aux Bases de Données 2004/2005 Chapitre 6: Le langage SQL Ecole Nationale Supérieur de Physique de Strasbourg Christian Wolf christian.wolf@ensps.u-strasbg.fr 6.1 Stockage physique Film numfil
Plus en détailBases de données et sites WEB Licence d informatique LI345
Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet
Plus en détailInformation utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/
Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/
Plus en détailJava DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Plus en détailSQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0
2013 SQL sous SqlServer OLIVIER D. DEHECQ Olivier http://www.entraide-info.fr 0 Table des matières Signalétique... 2 1 Les bases du SQL... 3 2 SQL server... 6 2 Références des exercices...21 DEHECQ Olivier
Plus en détailPartie 0 : Gestion des tablespace et des utilisateurs... 3
Sommaire Partie 0 : Gestion des tablespace et des utilisateurs... 3 1- Créer deux TableSpaces votre_nom-tbs et Votre_nom-TempTBS :... 3 2. Créer un utilisateur qui porte votre nom :... 3 3. Attribuer à
Plus en détail