PL/SQL. Présenté par Abdoul Aziz Ciss Dept GIT EPT 1 PL/SQL --AA Ciss

Dimension: px
Commencer à balayer dès la page:

Download "PL/SQL. Présenté par Abdoul Aziz Ciss Dept GIT EPT Email: aaciss@ept.sn. 1 PL/SQL --AA Ciss"

Transcription

1 PL/SQL Présenté par Abdoul Aziz Ciss Dept GIT EPT 1

2 Contenu Introduction au PL/SQL Variables PL/SQL Créer des sections exécutables Interactions avec le serveur Oracle Structures de contrôle Types de données composites Curseurs explicites Gestion des exceptions Procédures et fonctions stockées 2

3 Objectifs du cours Alafindececours,vouspourrez: 1. décrire les extensions de programmation du langage SQL offertes par le langage PL/SQL 2. écrire du code PL/SQL permettant l interaction avec une base de données 3. concevoir des programmes PL/SQL qui s exécutent de façon efficace 4. utiliser des structures de programmation PL/SQL et des instructions de contrôle conditionnelles 5. traiter les erreurs d exécution 6. décrire les procédures et fonctions stockées 3

4 Introduction au langage PL/SQL 4

5 Objectifs du chapitre Alafindecechapitre,vouspourrez: expliquer la nécessité du langage PL/SQL présenter les avantages liés à l'utilisation du langage PL/SQL identifier les différents types de bloc PL/SQL utiliser SQLDeveloper comme IDE pour le langage PL/SQL afficher des messages en langage PL/SQL 5

6 Définition du langage PL/SQL Le langage PL/SQL Signifie : Procedural Language extension to SQL (extension procédurale du langage SQL) Est le langage standard d accès aux données d Oracle Corporation pour les bases de données relationnelles Intègre de manière transparente les structures procédurales au SQL 6

7 A propos du langage PL/SQL Le langage PL/SQL offre une structure de bloc pour les unités de codes exécutables. La maintenance du code est facilitée par une structure bien définie Fournit des structures procédurales telles que : Variables, constantes et types Structures de contrôles telles que les instructions conditionnelles et les boucles Programmes réutilisables écrits une fois et exécutés plusieurs fois 7

8 Environnement PL/SQL 8

9 Avantages liés à l utilisation de PL/SQL Intégration de structures procédurales au SQL Performances améliorées 9

10 Avantages liés à l utilisation de PL/SQL Développement de programmes modulaires Intégration aux outils Oracle Portabilité Traitement des exceptions 10 PL/SQL -- AA Ciss

11 Structure d un bloc PL/SQL DECLARE(facultatif) Variables, curseurs, exceptions définies par l utilisateur BEGIN(obligatoire) -Instructions SQL - Instructions PL/SQL Exception (facultatif) Actions à effectuer lorsque des erreurs se produisent END;(obligatoire) 11 PL/SQL -- AA Ciss

12 Types de bloc 12 PL/SQL -- AA Ciss

13 Structures de programme 13 PL/SQL -- AA Ciss

14 Environnement de programmation PL/SQL 14 PL/SQL -- AA Ciss

15 15 PL/SQL -- AA Ciss Déclaration de variables

16 Objectifs du chapitre A la fin de ce chapitre, vous pourrez identifier les identificateurs valides et non valides Répertorier les utilisations des variables Déclarer et initialiser des variables Répertorier et décrire les différents types de données Identifier les avantages liés à l utilisation de l attribut %TYPE Déclarer, utiliser et afficher des variables attachées 16 PL/SQL -- AA Ciss

17 Utilisation des variables Les variables peuvent être utilisées pour le stockage temporaire de données La manipulation de valeurs stockées La réutilisation 17 PL/SQL -- AA Ciss

18 Identificateurs Les identificateurs sont utilisés pour nommer les variables définir une convention pour les noms de variables Les noms doivent commencer par une lettre Peuvent inclure des lettres ou des chiffres Peuvent inclure des caractères spéciaux tels que les signe $, _ ou # Doivent présenter une longueur maximale de 30 caractères Ne doivent pas être des mots réservés 18 PL/SQL -- AA Ciss

19 Traitements des variables Les variables sont déclarées et initialisées dans la section déclarative sont utilisées et font l objet d affectation de nouvelles valeurs dans la section exécutable sont transmis en tant que paramètres aux sous-programmes PL/SQL sont utilisées pour contenir la sortie d un sous-programme PL/SQL 19 PL/SQL -- AA Ciss

20 Déclaration et initialisation des variables Syntaxe Exemple 20 PL/SQL -- AA Ciss

21 Déclaration et initialisation des variables 21 PL/SQL -- AA Ciss

22 Délimiteurs dans les littéraux de type chaîne 22 PL/SQL -- AA Ciss

23 Types de variables Variables PL/SQL Scalaires Composites Références Lob Variables non PL/SQL : variables attachées 23 PL/SQL -- AA Ciss

24 Types de variables 24 PL/SQL -- AA Ciss

25 Règles de déclaration et d'initialisation des variables PL/SQL Respecter les conventions de notations Utiliser des noms évocateurs pour les variables Initialiser les variables désignées comme NOT NULLet CONSTANT Initialiser les variables avec l opérateur d affectation (:=) ou le mot clé DEFAULT Déclarer un identificateur par ligne pour améliorer la lisibilité et faciliter la maintenance du code 25 PL/SQL -- AA Ciss

26 Règles de déclaration et d'initialisation des variables PL/SQL Eviter d utiliser des noms de colonnes comme identificateurs Utiliser la contrainte NOT NULL lorsque la variable doit contenir une valeur 26 PL/SQL -- AA Ciss

27 Types de données scalaires Ils contiennent une valeur unique Ils n ont pas de composants internes 27 PL/SQL -- AA Ciss

28 Types de données scalaires CHAR [(maximum_length)] VARCHAR2 (maximum_length) LONG LONG RAW NUMBER [(precision, scale)] BOOLEAN TIMESTAMP WITH TIME ZONE TIMESTAMP WITH LOCAL TIME ZONE INTERVAL YEAR TO MONTH INTERVAL DAY TO SECOND BINARY_FLOAT BINARY_DOUBLE BINARY_INTEGER PLS_INTEGER DATE TIMESTAMP 28 PL/SQL -- AA Ciss

29 BINARY_FLOATet BINARY_DOUBLE Représentent les nombres en virgule flottante au format IEEE (Institute of Electrical and Electronics Engineers) 754 Offre une meilleure opérabilité et un fonctionnement rapide Permettent de stocker des valeurs au-delà des valeurs pouvant être stockées avec le type de données NUMBER Offrent l avantage des opérations arithmétiques fermées et l arrondi transparent 29 PL/SQL -- AA Ciss

30 Exemples Déclaration des variables scalaires 30 PL/SQL -- AA Ciss

31 Attribut %TYPE L attribut %TYPE est utilisé pour déclarer une variable en fonction d une définition de colonne de base de données d une autre variable déclarée est préfixé avec la table et la colonne de la base de données le nom de la variable déclarée 31 PL/SQL -- AA Ciss

32 Déclarer des variables avec l attribut %TYPE Syntaxe Exemples 32 PL/SQL -- AA Ciss

33 Déclarer des variables booléennes Seules les valeurs TRUE, FALSEet NULLpeuvent être affectées à une variable booléenne Les expressions conditionnelles utilisent les opérateurs logiques AND et OR, ainsi que l opérateur NOT, pour vérifier les valeurs des variables Les variables renvoient toujours TRUE, FALSE ou NULL Des expressions arithmétiques, caractères, ou dates peuvent être utilisées pour renvoyer une valeur booléenne 33 PL/SQL -- AA Ciss

34 Variables attachées Les variables attachées sont créées dans l environnement Également appelées variables hôte Créées avec le mot clé VARIABLE Utilisées dans les instructions SQL et les blocs PL/SQL Accessibles même après l exécution du bloc PL/SQL Référencées avec un signe deux-points précédant la variable 34 PL/SQL -- AA Ciss

35 Afficher des variables attachées Exemple 35 PL/SQL -- AA Ciss

36 Afficher des variables attachées Exemple 36 PL/SQL -- AA Ciss

37 Variables de substitution Elles sont utilisées pour autoriser la saisie de l utilisateur lors de l exécution Elles sont référencées dans un bloc PL/SQL avec une esperluette Elles sont utilisées afin d éviter le codage en dur des valeurs pouvant être obtenues lors de l exécution 37 PL/SQL -- AA Ciss

38 Invite pour les variables de substitution 38 PL/SQL -- AA Ciss

39 Utiliser DEFINE pour la variable de l utilisateur Exemple 39 PL/SQL -- AA Ciss

40 Types de données composites 40 PL/SQL -- AA Ciss

41 Variables de type BLOB 41 PL/SQL -- AA Ciss

42 Jeu de données (hr) utilisé dans ce cours 42

43 Ecrire des instructions exécutables 43 PL/SQL -- AA Ciss

44 Objectifs du chapitre A la fin de chapitre, vous pourrez : 1. Identifier les unités lexicales d un bloc PL/SQL 2. Utiliser des fonctions SQL intégrées dans du code PL/SQL 3. Décrire dans quels cas des conversions implicites ont lieu et dans quels cas effectuer des conversions explicites 4. Écrire des blocs imbriqués et qualifier des variables avec des étiquettes 5. Écrire du code lisible grâce à des indentations appropriées 44 PL/SQL -- AA Ciss

45 Unités lexicales d un bloc PL/SQL Les unités lexicales sont les blocs constitutifs de n importe quel bloc PL/SQL Sont des séquences de caractères incluant des chiffres, des tabulations, des espaces, des retours chariot et des symboles Peuvent être classées en différents groupe Identificateurs Délimiteurs Littéraux commentaires 45

46 Syntaxe et règles relatives au bloc PL/SQL Littéraux Les littéraux de type caractères et date doivent être placés entre apostrophes Les nombres peuvent être des valeurs simples ou utiliser une notation scientifique Les instructions peuvent s étendre sur plusieurs lignes 46

47 Commenter le code Commentaires monolignes avec deux traits d union (--) Commentaires multi-lignes entre les symboles "/*" et "*/" Exemple 47

48 Fonction SQL dans le code PL/SQL Disponibles dans les instructions procédurales Fonctions monolignes numériques Fonctions monolignes de type caractère Conversion de type de données Fonctions de date Horodatage Fonctions GREATEST et LEAST Fonctions diverses Non disponibles dans les instructions procédurales DECODE Fonctions de groupe 48

49 Fonction SQL dans le code PL/SQL Exemples : Déterminer la longueur d une chaine Convertir le nom d un employé en minuscule 49

50 Conversion de type de données Conversion de données en type de données comparables Elles sont de deux types Conversion implicite Conversion explicite Exemples de fonctions de conversion TO_CHAR TO_NUMBER TO_DATE TO_TIMESTAMP 50

51 Conversion de type de données 51

52 Blocs imbriqués Les blocs PL/SQL peuvent être imbriqués Une section exécutable (BEGIN END) peut contenir des blocs imbriqués Une section de traitement des exceptions peut contenir des blocs imbriqués 52

53 Blocs imbriqués 53

54 Portée et visibilité des variables 54

55 Qualifier un identificateur 55

56 Déterminer la portée d une variable 56

57 Opérateurs en PL/SQL Opérateurs logiques Opérateurs arithmétiques Opérateur de concaténation Parenthèses permettant de contrôler l ordre des opération Identiquesen langage SQL Opérateur exponentiel (**) 57

58 Opérateurs en PL/SQL Exemple Incrémenter le compteur pour une boucle Définir la valeur d un indicateur booléen Vérifier qu un numéro d employé contient une valeur 58

59 Règles relatives à la programmation Faciliter la maintenance du code En commentant le code En développant une convention d utilisation des majuscules et des minuscules En développant des conventions d appellation pour les identificateurs et les autres objets En utilisant des indentations pour améliorer la lisibilité 59

60 Indenter le code Pour plus de clarté, indenter chaque niveau du code. Exemples 60

61 Interagir avec le serveur Oracle 61

62 Objectifs A la fin de ce chapitre, vous pourrez déterminer les instructions SQL pouvant être incluses directement dans un bloc exécutable PL/SQL Manipuler les données à l aide d instructions LMD dans du code PL/SQL Utiliser des instructions de gestion des transactions dans le code PL/SQL Utiliser la clause INTO pour le stockage des valeurs renvoyées par une instructions SQL Distinguer les curseurs implicites des curseurs explicites Utiliser des attributs de curseur SQL 62

63 Instructions SQL en langage PL/SQL Extraire une ligne de la BD à l aide de la commande SELECT Modifier des lignes de la BD en utilisant des commandes LMD Contrôler une transaction avec les commandes COMMIT, ROLLBACK ou SAVEPOINT 63

64 Instructions SELECT en PL/SQL Extraire des données de la BD avec une commande SELECT Syntaxe : 64

65 Instructions SELECT en PL/SQL La clause INTO est obligatoire Les interrogations doivent renvoyer une seule ligne Exemple 65

66 Extraction de données Exemple : Extraire les valeurs hire_dateet salaryde l employé désigné 66

67 Extraction de données Exemple : Renvoyer la somme des salaires de tous les employés du département désigné 67

68 Conventions d appellation 68

69 Conventions d appellation Utiliser une convention de notation pour éviter toute ambigüité avec la clause WHERE Eviter d utiliser des noms de colonnes de base de données comme identificateurs Des erreurs de syntaxe peuvent survenir, car le compilateur PL/SQL rechercheenpremierlieuunecolonnedelabasededonnées Les noms des variables locales et les paramètres formels ont une prioritésurlesnomsdetablesdelabd Les noms des colonnes des tables de la BD ont une priorité sur les noms des variables locales 69

70 Manipulation des données Modifier des tables de la BD en utilisant des instructions LMD INSERT UPDATE DELETE MERGE 70

71 Insérer des données Exemple : Ajouter un nouvel employé 71

72 Mise à jour Exemple : Augmenter le salaire de tous les employés chargés du contrôle des stocks 72

73 Supprimer des données Exemple : Supprimer les tuplesappartenant au département 10 à partir de la table employees 73

74 Fusionner des lignes Insérer ou mettre à jour des lignes de la table copy_empafin qu elles correspondent à celles de la table employees 74

75 Curseur SQL Un curseur est un pointeur vers la zone mémoire allouée par le serveur Oracle Ilexistedeuxtypesdecurseur Curseurs implicites : créés et gérés en interne par le serveur Oracle afin de traiter les instructions SQL Curseurs explicites : déclarés explicitement par le programmeur 75

76 Attributs de curseur SQL pour les curseurs implicites Grâce aux attributs de curseur SQL, on peut tester le résultat de l exécution des instructions SQL 76

77 Attributs de curseur SQL pour les curseurs implicites Exemple : Supprimer de la table employees les tuples avec l ID désigné. Afficher ensuite le nombre de lignes supprimées 77

78 78 PL/SQL -- AA Ciss Structures de contrôle

79 Objectifs du chapitre A la fin de ce chapitre, vous pourrez : Identifier les types de structures de contrôle et leurs utilisations Écrire une instruction IF Utiliser des instructions et des expressions CASE Écrire et identifier différents types d instruction de boucle Appliquer les règles d utilisation des structures de contrôle conditionnel. 79

80 Contrôler le flux d exécution 80

81 Instructions IF Syntaxe 81

82 Instructions IFsimples 82

83 Instruction IF THEN ELSE 83

84 Clause IF ELSIF ELSE 84

85 Valeurs NULLdans les instructions IF 85

86 Expressions CASE Une expression CASE sélectionne un résultat et le renvoie Pour sélectionner le résultat, l expression CASE utilise des expressions. La valeur renvoyée par ces expressions est utilisée pour sélectionner une ou plusieurs alternatives 86

87 Expression CASE: exemple 87

88 Expressions de recherche pour la clause CASE 88

89 Instruction CASE 89

90 Traiter les valeurs NULL Lorsqu on utilise des valeurs NULL, on peut éviter certaines erreurs fréquentes en gardant à l esprit les règles suivantes: Les comparaisons simples impliquant des valeurs NULL renvoient toujours une valeur NULL L application de l opérateur NOT à une valeur NULL renvoie toujours une valeur NULL Dans les instructions de contrôle conditionnelles, si la condition renvoie une valeur NULL, la séquence d instructions associée n est pas exécutée. 90

91 Tables logiques Créer une condition booléenne simple avec un opérateur de comparaison 91

92 Conditions booléennes Quelle est la valeur de flagdans chaque cas? 92

93 Contrôle d itération : instructions LOOP Les boucles permettent d exécuter plusieurs fois une instruction ou une suite d instructions Il existe trois types de boucle : Boucle de base Boucle FOR Boucle WHILE 93

94 Boucles de base Syntaxe 94

95 Boucles de base 95

96 Boucle WHILE Une boucle WHILE est utilisée pour répéter des instructions tant qu une condition est vérifiée (ie. renvoie TRUE) Syntaxe 96

97 Boucle WHILE 97

98 Boucle FOR Utiliser une boucle FORpour simplifier le contrôle du nombre d itérations Ne pas déclarer le compteur (sa déclaration est implicite) La syntaxe lower_bound..upper_bound est obligatoire 98

99 Boucle FOR 99

100 Boucle FOR Règles Ne référencer le compteur qu à l intérieur de la boucle. Il n est pas définie en dehors. Ne pas référencer le compteur en tant que cible d une affectation Aucune limite de boucle ne doit être NULL. 100

101 Remarques relatives à l utilisation des boucles Utiliser la boucle de base lorsque ses instructions de base s exécute au moins une fois Utiliser la boucle WHILE si la condition doit être évaluée au début de chaque itération Utiliser une boucle FOR si le nombre d itérations est connu. 101

102 Boucles imbriquées et étiquettes Imbriquer des boucles à plusieurs niveaux Utiliser des étiquettes pour différencier les blocs des boucles Quitter la boucle externe en utilisant l instruction EXIT qui référence l étiquette 102

103 Boucles imbriquées et étiquettes 103

104 Utiliser des types de données composites 104

105 Objectifs du chapitre A la fin de ce chapitre, vous pourrez : Créer des enregistrements PL/SQL définis par l utilisateur Créer des enregistrements avec l attribut %ROWTYPE Créer une table INDEX BY Créer une table d enregistrement INDEX BY Faire la distinction entre les tables, les enregistrements et les tables d enregistrements 105

106 Types de données composites Ils peuvent contenir plusieurs valeurs, contrairement aux types scalaires Ilssontdedeuxtypes: Enregistrements PL/SQL Ensembles PL/SQL Tables INDEX BY ou tableaux associatifs Tables imbriquées VARRAY 106

107 Types de données composites Utiliser des enregistrement PL/SQL pour stocker des valeurs de types différents Utiliser des ensembles PL/SQL pour stocker des valeurs de même type de données 107

108 Enregistrements PL/SQL Ils doivent être composés d un ou plusieurs champs de type scalaire, RECORD, ou table INDEX BY Ils sont semblables aux structures de la plupart des langages de troisième génération, tels que C et C++ Ils sont définis par l utilisateur et peuvent être un sous-ensemble d une ligne d une table Ilstraitentunensembledechampcomme uneunitélogique Ils permettent d extraire une ligne de données à partir d une table pour la traiter 108

109 Syntaxe Créer un enregistrement PL/SQL field_declaration 109

110 Créer un enregistrement PL/SQL Déclarer des variables pour le stockage du nom, du poste et du salaire d un nouvel employé : 110

111 Structure d un enregistrement PL/SQL Exemple 111

112 Attribut %ROWTYPE Déclarer une variable correspondant à l ensemble des colonnes d une table ou d une vue d une base de données Faire précéder %ROWTYPE du nom de la table ou de la vue de la BD Les noms et types de données des champs de l enregistrement sont issus des colonnes de la table ou de la vue. Syntaxe 112

113 Avantages liés à l utilisation de l attribut %ROWTYPE Il n est pas nécessaire de connaître le nombre et le type des colonnes sous-jacentes. Le nombre et les types de colonnes sous-jacentes peuvent être modifiés durant l exécution L attribut permet d extraire une ligne avec l instruction SELECT *. 113

114 Attribut %ROWTYPE 114

115 Mettre à jour une ligne d une table avec un enregistrement 115

116 Insérer un enregistrement avec %ROWTYPE 116

117 Tables INDEX BY ou tableaux associatifs Structures PL/SQL avec deux colonnes Entier ou chaine de type clé primaire Colonne de type scalaire ou RECORD Pas de contrainte de taille. La taille dépend des valeurs pouvant être contenues dans le type de données de clé. 117

118 Créer une table INDEX BY Syntaxe Déclarer une table INDEX BY pour le stockage du nom des employés 118

119 Structure des tables INDEX BY 119

120 Créer une table INDEX BY 120

121 Utiliser des méthodes des tables INDEX BY INDEX BY Les méthodes suivantes facilitent l utilisation des tables INDEX BY EXIST COUNT FIRST et LAST PRIOR NEXT DELETE 121

122 Table d enregistrements INDEX BY Définir une variable de table INDEX BY contenant une ligne entière d une table 122

123 Exemple de table d enregistrements INDEX BY 123

124 Tables imbriquées 124

125 VARRAY 125

126 126 PL/SQL -- AA Ciss Curseurs explicites

127 Objectifs A la fin de ce chapitre, vous pourrez : Faire la différence entre un curseur implicite et un curseur explicite Déterminer quand et pourquoi utiliser un curseur explicite Déclarer et contrôler des curseurs explicites Utiliser une boucle simple et une boucle FOR de curseur pour extraire des données Déclarer et utiliser des curseurs avec parmètres Verrouiller des ligne à l aide ce la clause FOR UPDATE Référencer la ligne actuelle avec la clause WHERE CURRENT 127

128 A propos des curseurs A chaque instruction SQL exécutée par le serveur Oracle est associé un curseur individuel: Curseurs implicites : déclarés et gérés par le compilateur PL/SQL pour toutes les instructions LMD et les instructions SELECT PL/SQL Curseurs explicites: déclarés et gérés par le programmeur. 128

129 Opérations de curseur explicite 129

130 Contrôler les curseurs explicites 130

131 Contrôler les curseurs explicites 131

132 Déclarer un curseur Syntaxe Exemple 132

133 Ouvrir le curseur 133

134 Extraire des données du curseur 134

135 Extraire des données du curseur 135

136 Fermer le curseur 136

137 Curseurs et enregistrements Traiter les lignes de l ensemble actif en extrayant (fetch) les valeurs pour les placer dans un enregistrement PL/SQL 137

138 Boucle FORde curseur Syntaxe La boucle FOR decurseur simplifie le traitement des curseurs explicites Des opérations d ouverture, extraction (fetch), de sortie, de fermeture ont lieu de manière implicite L enregistrement est déclaré implicitement 138

139 Boucle FORde curseur 139

140 Attributs d un curseur explicite Obtenir les informations concernant l état d un curseur 140

141 Attribut %ISOPEN Extraire (fetch) les lignes uniquement lorsque le curseur est ouvert Utiliser l attribut %ISOPEN avant de réaliser une extraction pour déterminer si un curseur est ouvert. Exemple 141

142 Exemple d utilisation des attributs %ROWCOUNT et %NOTFOUND 142

143 Boucle FOR de curseur utilisant des sous-interrogations Il n est pas nécessaire de déclarer le curseur Exemple 143

144 Curseurs avec paramètres Syntaxe Transmettre des paramètre au curseur au moment de son ouvertureet de l exécution de l interrogation Ouvrir un curseur explicite à plusieurs reprises en renvoyant un ensemble actif différent à chaque fois 144

145 Curseurs avec paramètres 145

146 Clause FOR UPDATE Syntaxe Utiliserun verrouillage explicite pour interdire l accès aux autres sessions pendant la durée d une transaction Verrouiller les lignes avant la mise à jour ou la suppression 146

147 Clause WHERE CURRENT OF Syntaxe Utiliser des curseurs pour mettre à jour ou supprimer les lignes en cours Inclurela clause FOR UPDATE dans l interrogation du curseur pour verrouiller au préalable les lignes Utiliser la clause WHERE CURRENT OF pour référencer la ligne en cours à partir d un curseur explicite 147

148 Exemple Curseurs contenant des sousinterrogations 148

149 Gestion des exceptions 149

150 Objectifs A la fin de ce chapitre, vous pourrez : Définir des exceptions PL/SQL Reconnaitre des exceptions non gérées Répertorier et utiliser différents types de gestionnaires d exceptions PL/SQL Intercepter les erreurs non prédéfinies Décrire l effet de la propagation des exceptions dans des blocs imbriqués Personnaliser les messages d exception PLS/SQL 150

151 Exemple 151

152 Exemple 152

153 Traitement des exceptions en PL/SQL Une exception est une erreur PL/SQL détectée pendant l exécution du programme Une exception peut être générée Implicitement par le serveur Oracle Explicitement par le programme Une exception peut être traitée Par interception à l aide d un gestionnaire Par propagation vers l environnement appelant 153

154 Traitement des exceptions en PL/SQL 154

155 Types d exception Exceptions prédéfinie du serveur Oracle Exception non prédéfinie du serveur Oracle Exception déclenchée implicitement Exception définie par l utilisateur Exception déclenchée explicitement 155

156 Intercepter les exceptions Syntaxe 156

157 Règles d interception des exceptions Le mot-clé EXCEPTION débute la section de traitement des exceptions Plusieurs gestionnaires d exceptions sont autorisés Un seul gestionnaire est traité avant la sortie du bloc WHEN OTHERS est la dernière clause 157

158 Intercepter les erreurs prédéfinies du serveur Oracle Utiliser le nom prédéfini à l intérieur du sous-programme de traitement des exceptions Exemples d exceptions prédéfinies NO_DATA_FOUND TOO_MANY_ROWS INVALID_CURSOR ZERO_DIVIDE DUP_VAL_ON_INDEX 158

159 Intercepter les erreurs non prédéfinies du serveur Oracle 159

160 Erreurs non prédéfinies Intercepter l erreur numéro du serveur Oracle, impossible d insérer la valeur NULL 160

161 Fonctions d interception des exceptions SQLCODE: renvoie la valeur numérique du code d erreur SQLERRM: renvoie le message d erreur associé au code d erreur 161

162 Fonctions d interception des exceptions Exemple 162

163 Intercepter les exceptions définies par l utilisateur 163

164 Intercepter les exceptions définies par l utilisateur 164

165 Environnements appelants 165

166 Propagation des exceptions d un sousbloc Des sous-blocs peuvent traiter une exception ou la transmettre à un bloc englobant 166

167 Procédure RAISE_APPLICATION_ERROR Syntaxe Onpeut utiliser cette procédure pour générer des messages d erreur définis par l utilisateur à partir de sous-programmes stockés Elle permetde signaler les erreurs à l applications et d éviter le renvoie d exceptions non traitées 167

168 Procédure RAISE_APPLICATION_ERROR Elle peut être utilisée à deux endroits: Section exécutable Section de traitement des exceptions Elle renvoie à l utilisateur les conditions de l erreur de manière cohérente par rapport aux autres erreurs du serveur Oracle 168

169 Procédure RAISE_APPLICATION_ERROR Section exécutable Section de traitement des exception 169

170 Procédures et fonctions stockées 170

171 Objectifs A la fin de ce chapitre, vous pourrez Faire la distinction entre les blocs anonymes et les sousprogrammes Créer une procédure simples et l appeler à partir d un bloc anonyme Créer une fonction simple Créer une fonction simple qui accepte un paramètre Faire la distinction entre les procédures et les fonctions 171

172 Procédures et fonctions Blocs PL/SQL nommés Appelés sous-programmes PL/SQL Présentent des structures de blocs semblables à celles des blocs anonymes Section déclarative facultative (sans le mot-clé DECLARE) Section exécutable obligatoire Section facultative de traitement des exceptions 172

173 Différences entre les blocs anonymes et les sous-programmes 173

174 Procédure : syntaxe 174

175 Procédure : exemple 175

176 Appeler la procédure 176

177 Fonction : syntaxe 177

178 Fonction : exemple 178

179 Appeler la fonction 179

180 Transmettre un paramètre à une fonction 180

181 Appeler une fonction avec un paramètre 181

Développer en PL/SQL. Sommaire du cours

Développer en PL/SQL. Sommaire du cours Sommaire du cours Module 1 Introduction et Rappels Module 2 Eléments de langage PL/SQL Module 3 Accès à la Base de données Module 4 Traitements stockés Module 5 Gestion des exceptions Module 6 - Compléments

Plus en détail

Oracle Database 11g : Les fondamentaux des langages SQL et PL/SQL

Oracle Database 11g : Les fondamentaux des langages SQL et PL/SQL Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 11g : Les fondamentaux des langages SQL et PL/SQL Durée: 5 Jours Description Ce cours vous permettra d acquérir les principes fondamentaux

Plus en détail

Oracle Database: Program with PL/SQL

Oracle Database: Program with PL/SQL Description Ce cours est une introduction à la technologie de base de données d'oracle Database 11g. Il explique aux stagiaires les concepts liés aux bases de données relationnelles. Il leur présente également

Plus en détail

Oracle : Langage PL/SQL

Oracle : Langage PL/SQL 1 Introduction à PL/SQL Oracle : Langage PL/SQL PL/SQL est un langage de programmation procédural et structuré. 1.1 Langage de programmation Il contient un ensemble d'instructions permettant de mettre

Plus en détail

Oracle Database 10g: Les fondamentaux des langages SQL et PL/SQL

Oracle Database 10g: Les fondamentaux des langages SQL et PL/SQL Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 10g: Les fondamentaux des langages SQL et PL/SQL Durée: 5 Jours Description Ce cours s'adresse aux utilisateurs d'oracle8i, Oracle9i

Plus en détail

PL/SQL. Pourquoi PL/SQL? Introduction. Principales caractéristiques de PL/SQL. Utilisation de PL/SQL

PL/SQL. Pourquoi PL/SQL? Introduction. Principales caractéristiques de PL/SQL. Utilisation de PL/SQL PL/SQL Avertissement : cette partie du cours n est qu un survol du langage PL/SQL, utile pour écrire des procédures stockées simples Elle laisse de côté de nombreuses fonctionnalités du langage Université

Plus en détail

Mostafa Hanoune. Traitement des Exceptions

Mostafa Hanoune. Traitement des Exceptions Mostafa Hanoune 8 Traitement des Exceptions Objectifs A la fin de ce chapitre, vous saurez : Définir des exceptions PL/SQL Reconnaître les exceptions non gérées Lister et utiliser les différents types

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage 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étail

Programmer avec PL/SQL

Programmer avec PL/SQL Programmer avec PL/SQL École Supérieure de la Statistique et de l Analyse de l Information (ESSAI) Avertissement : cette partie du cours n est qu un survol du langage PL/SQL, utile pour écrire des procédures

Plus en détail

Oracle Database 10g: Les fondamentaux du langage SQL I

Oracle Database 10g: Les fondamentaux du langage SQL I Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 10g: Les fondamentaux du langage SQL I Durée: 3 Jours Description Ce cours offre aux étudiants une introduction à la technologie de

Plus en détail

Les Exceptions. Rappel : Répondre par vrai ou faux Un curseur est une zone mémoire dans laquelle une commande SQL est analysée et exécutée

Les Exceptions. Rappel : Répondre par vrai ou faux Un curseur est une zone mémoire dans laquelle une commande SQL est analysée et exécutée Rappel : Répondre par vrai ou faux Un curseur est une zone mémoire dans laquelle une commande SQL est analysée et exécutée Un curseur implicite est toujours une commande select Une curseur explicite ne

Plus en détail

2013-2014 N.EL FADDOULI 39 2013-2014 N.EL FADDOULI 40. Page 2

2013-2014 N.EL FADDOULI 39 2013-2014 N.EL FADDOULI 40. Page 2 Introduction Bloc PL/SQL Déclaration des variable Structure de contrôle Curseurs Les exceptions PL /SQL Les fonctions et procédures Les packages Les triggers 1 Les exceptions Définition Exceptions prédéfinies

Plus en détail

Oracle Database: Introduction to SQL NOUVEAU

Oracle Database: Introduction to SQL NOUVEAU Oracle University Appelez-nous: 1.800.529.0165 Oracle Database: Introduction to SQL NOUVEAU Durée: 5 Jours Description Le cours "Oracle Database: Introduction to SQL" explique comment écrire des sous-requêtes,

Plus en détail

Synthèse PL SQL ORACLE. Declaration des variables, des constants, des exceptions et des curseurs.

Synthèse PL SQL ORACLE. Declaration des variables, des constants, des exceptions et des curseurs. Synthèse PL SQL ORACLE Bloc PL-SQL DECLARE Declaration des types, des variables, des constantes, des exceptions et des curseurs. BEGIN [nom du bloc] EXCEPTION Traitement des erreurs END [nom du bloc] Declaration

Plus en détail

PL/SQL. Richard CHBEIR Email : richard.chbeir@u-bourgogne.fr

PL/SQL. Richard CHBEIR Email : richard.chbeir@u-bourgogne.fr PL/SQL Richard CHBEIR Email : richard.chbeir@u-bourgogne.fr Plan Introduction Environnements Bloc PL/SQL Variables Traitements conditionnels Traitements répétitifs Curseurs Gestion des erreurs Fonctions

Plus en détail

TD BD dynamique. DECLARE déclaration des variables, constantes, exceptions et curseurs locaux au bloc

TD BD dynamique. DECLARE déclaration des variables, constantes, exceptions et curseurs locaux au bloc TD BD dynamique Un déclencheur est utilisé pour complémenter les contraintes d'intégrité de la base. Une partie des contraintes ne peut souvent pas être définie avec les fonctionnalités décrites jusqu'ici.

Plus en détail

Bases de données Programmation PL/SQL. LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio

Bases de données Programmation PL/SQL. LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio Bases de données Programmation PL/SQL LP TOSPI, IUT Montluçon, Université Blaise Pascal 2010-2011 Laurent d Orazio Plan I. Vue d ensemble et principes de fonctionnement II. Eléments de programmation III.

Plus en détail

Mostafa Hanoune. Interactions avec le Serveur Oracle

Mostafa Hanoune. Interactions avec le Serveur Oracle 3 Interactions avec le Serveur Oracle Objectifs A la fin de ce chapitre, vous saurez : Ecrire une instruction SELECT en PL/SQL Déclarer le type de données et la taille d une variable PL/SQL dynamiquement

Plus en détail

Université M Hamed Bougara Boumerdès, Faculté des Sciences, Département Informatique SQL PROCEDURAL

Université M Hamed Bougara Boumerdès, Faculté des Sciences, Département Informatique SQL PROCEDURAL Université M Hamed Bougara Boumerdès, Faculté des Sciences, Département Informatique Cours (Master 1) : Bases de Données Avancées, (Responsable : A. AIT BOUZIAD) SQL PROCEDURAL Dans les différentes parties

Plus en détail

Programmation en VBA

Programmation en VBA Programmation en VBA Présentation de Visual Basic Visual Basic : Basic : dérivé du langage Basic (Biginner s All purpose Symbolic Instruction Code) des années 60 Visual : dessin et aperçu de l interface

Plus en détail

II. EXCEL/QUERY ET SQL

II. EXCEL/QUERY ET SQL I. AU TRAVAIL, SQL! 1. Qu est-ce que SQL?... 19 2. SQL est un indépendant... 19 3. Comment est structuré le SQL?... 20 4. Base, table et champ... 21 5. Quelle est la syntaxe générale des instructions SQL?...

Plus en détail

Présentation du PL/SQL

Pré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étail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel)

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel) Activer l onglet Développeur (Excel) Programmation VBA Michel Reid Cliquez sur le bouton Office (coin supérieur gauche) Cliquez sur le bouton Options Excel Dans la section Standard, cochez la case Afficher

Plus en détail

1/44. I Programming Language with SQL. I Langage de programmation procédural ADA like. I Langage propriétaire mais qui a inspiré la norme SQL3

1/44. I Programming Language with SQL. I Langage de programmation procédural ADA like. I Langage propriétaire mais qui a inspiré la norme SQL3 Généralités 1/44 2/44 Anne-Cécile Caron Présentation Programming Language with SQL Langage de programmation procédural ADA like Langage propriétaire mais qui a inspiré la norme SQL3 Adapté à la manipulation

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage 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étail

Table des matières PREAMBULE...I 1 L OUTIL SQL*PLUS... 1-1 2 L INTERROGATION DES DONNEES... 2-1 3 LES OPERATEURS LOGIQUES... 3-1

Table des matières PREAMBULE...I 1 L OUTIL SQL*PLUS... 1-1 2 L INTERROGATION DES DONNEES... 2-1 3 LES OPERATEURS LOGIQUES... 3-1 Table des matières PREAMBULE...I 1 L OUTIL SQL*PLUS... 1-1 Le langage SQL... 1-2 Le langage PL/SQL... 1-4 Qu'est-ce que SQL*Plus?... 1-5 Commandes SQL*Plus... 1-7 Variables de substitution... 1-15 La commande

Plus en détail

Informatique. Programmation en Python.

Informatique. Programmation en Python. BCPST 1 B 13 septembre 2015 Informatique. Programmation en Python. Ce document est un support de cours, il vous permet d avoir sa structure et ses éléments les plus importants. Au cours des séances en

Plus en détail

Oracle 12c. Programmez. Exercices et corrigés. Jérôme GABILLAUD Anne-Sophie LACROIX

Oracle 12c. Programmez. Exercices et corrigés. Jérôme GABILLAUD Anne-Sophie LACROIX Oracle 12c Programmez avecsqletpl/sql Exercices et corrigés Téléchargement www.editions-eni.fr 90 QCM 93 travaux pratiques et leurs corrigés Près de 28 H de mise en pratique Jérôme GABILLAUD Anne-Sophie

Plus en détail

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr

Cours PL/SQL. Cours PL/SQL. E.Coquery. emmanuel.coquery@liris.cnrs.fr Cours PL/SQL E.Coquery emmanuel.coquery@liris.cnrs.fr Programmation au sein du SGBD Pourquoi? Les contraintes prédéfinies ne sont pas toujours suffisantes. Exemple : tout nouveau prix pour un CD doit avoir

Plus en détail

SQL Les fondamentaux du langage (2ième édition)

SQL Les fondamentaux du langage (2ième édition) Introduction 1. Un peu d'histoire 11 2. Les normes SQL 12 3. Description rapide du modèle relationnel 14 3.1 Principaux concepts du modèle relationnel 15 3.2 Principales règles 16 4. Les opérateurs en

Plus en détail

2011 Hakim Benameurlaine 1

2011 Hakim Benameurlaine 1 Table des matières 1 PRÉSENTATION DE TSQL... 2 1.1 Historique... 2 1.2 Les différents types d instructions... 2 1.2.1 Langage de Définition des Données... 2 1.2.2 Langage de Manipulation des Données...

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 4 : PL/SQL : ou comment faire plus avec ORACLE 2ème partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Exceptions Rappels bloc PL/SQL Definition

Plus en détail

Fondements des bases de données Programmation en PL/SQL Oracle (1/2)

Fondements des bases de données Programmation en PL/SQL Oracle (1/2) Fondements des bases de données Programmation en PL/SQL Oracle (1/2) Équipe pédagogique BD romuald.thion@univ-lyon1.fr http://liris.cnrs.fr/~rthion/dokuwiki/enseignement:lif10/ Version du 12 février 2014

Plus en détail

On peut considérer les vues comme des «tables virtuelles» : leur contenu est constitué seulement au moment de la demande d exécution de cette vue.

On peut considérer les vues comme des «tables virtuelles» : leur contenu est constitué seulement au moment de la demande d exécution de cette vue. SQL Ch 9 DDL Vues, PL/SQL, procédures,... I. INTRODUCTION... 1 II. LES VUES (ANGLAIS «VIEWS»)... 1 A. CREER UNE VUE : CREATE VIEW... 1 B. SUPPRIMER UNE VUE DROP VIEW... 3 III. LANGAGE PL/SQL, PROCEDURES

Plus en détail

PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers

PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers PL/SQL INTRODUCTION Introduction à PL/SQ Les procédures, les fonctions et les packages Les triggers Département d informatique Collège Lionel Groulx. Préparé par Saliha Yacoub Table des matières. Introduction...

Plus en détail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

Plus en détail

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

Plus en détail

Les déclencheurs (Triggers) avec Oracle

Les déclencheurs (Triggers) avec Oracle 1) Introduction 2) Événements déclenchant 3) Mécanisme général 4) Privilèges systèmes 5) Syntaxe 6) Nom du déclencheur 7) Option BEFORE ou AFTER 8) Déclencheur LMD 9) Déclencheur LDD 10) Déclencheur d'instance

Plus en détail

PL/SQL Procedural Language Extensions to SQL

PL/SQL Procedural Language Extensions to SQL PL/SQL Procedural Language Extensions to SQL Il permet : - l'utilisation d'un sous-ensemble du langage SQL, - la mise en œuvre de structures procédurales, - la gestion des erreurs. L'une des plus importantes

Plus en détail

Programmer 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) 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étail

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Plan Généralités Langage de Définition des (LDD) Langage de Manipulation

Plus en détail

SQL Server 2012 - SQL, Transact SQL Conception et réalisation d'une base de données

SQL Server 2012 - SQL, Transact SQL Conception et réalisation d'une base de données Le modèle relationnel 1. Introduction 9 2. Rappels sur le stockage des données 9 2.1 Les différentes catégories de données 10 2.1.1 Les données de base 10 2.1.2 Les données de mouvement 10 2.1.3 Les données

Plus en détail

ORACLE SQL LDD. Langage de définition de données

ORACLE SQL LDD. Langage de définition de données ORACLE SQL LDD Langage de définition de données Le langage SQL (Structured Query Language) SQL a été normalisé par l ANSI puis par l ISO depuis 1986 sous ses différents aspects : LDD : définition des données

Plus en détail

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4

SQL pour. Oracle 10g. Razvan Bizoï. Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 SQL pour Oracle 10g Razvan Bizoï Tsoft, Groupe Eyrolles, 2006, ISBN : 2-212-12055-9, ISBN 13 : 978-2-212-12055-4 Table des matières PRÉAMBULE... MODULE 1 : PRÉSENTATION DE L ENVIRONNEMENT... 1-1 Qu'est-ce

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module 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étail

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le 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étail

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (2ième édition)

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (2ième édition) Introduction 1. Objectif de l'ouvrage 13 2. Fonctionnement d un site web 13 Installation 1. Introduction 17 2. Installation d'easyphp 13.1 18 Les bases du langage PHP 1. Les balises 23 1.1 Syntaxe de base

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// 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étail

420-PK6-SL Banques de données Avancées. la suite

420-PK6-SL Banques de données Avancées. la suite 420-PK6-SL Banques de données Avancées PL/SQL la suite ENTRÉES AU CLAVIER Pour quérir une valeur au clavier lors de l'exécution d'une fonction SqlPlusfournis l'opérateur «&». PL/SQL n'a pas de mécanisme

Plus en détail

Haute École de Gestion 05/10/2007. au cours Programmation en VBA Excel. Faisons connaissance. Etudiants se présentent

Haute École de Gestion 05/10/2007. au cours Programmation en VBA Excel. Faisons connaissance. Etudiants se présentent Bienvenue au cours en Excel Faisons connaissance Etudiants se présentent Nom, Prénom Avez-vous déjà fait des macros Excel? Avec-vous déjà programmé avec Excel? Avez-vous déjà programmé avec d'autres langages

Plus en détail

Christian Soutou Olivier Teste SQL pour Oracle

Christian Soutou Olivier Teste SQL pour Oracle Christian Soutou Olivier Teste SQL pour Oracle Chapitre 6 Bases du PL/SQL Ce chapitre décrit les caractéristiques générales du langage PL/SQL : structure d un programme ; déclaration et affectation de

Plus en détail

CC30 Certificat de compétence Conception, développement et animation de sites Web

CC30 Certificat de compétence Conception, développement et animation de sites Web CC30 Certificat de compétence Conception, développement et animation de sites Web UE RSX053 Introduction aux bases de données Séance 9 1 Table des matières 1. PLSQL...3 1.1. Présentation...3 1.2. L utilité

Plus en détail

07/02/2011 (SQL/PSM) MySQL SQL/PSM. Application. Bloc SQL/PSM SQL SQL SQL SQL SQL IF... THEN SQL ELSE SQL END IF ; SQL

07/02/2011 (SQL/PSM) MySQL SQL/PSM. Application. Bloc SQL/PSM SQL SQL SQL SQL SQL IF... THEN SQL ELSE SQL END IF ; SQL (SQL/PSM) 1 Extension de SQL ( PSM ) Langage de programmation procédural Clauses SQL intégrées dans le code procédural SQL/PSM est donc un langage de programmation, propre à mysql : Intégre directement

Plus en détail

Tableau 7-27 Déclencheur avant insertion. Tableau 7-28 Test du déclencheur

Tableau 7-27 Déclencheur avant insertion. Tableau 7-28 Test du déclencheur chapitre n 7 Programmation avancée Chaque enregistrement qui tente d être ajouté dans la table Qualifications est désigné par :NEW au niveau du code du déclencheur. L accès aux colonnes de ce pseudo-enregistrement

Plus en détail

1. Eléments de base du langage C

1. Eléments de base du langage C 1 1. Eléments de base du langage C Généralités Programme et sous-programme Fonction C Structure d un programme C Vocabulaire de base et syntaxe Exemples 2 Généralités Crée en 1972 par D. Ritchie pour écrire

Plus en détail

Programmation en VBA

Programmation en VBA Programmation en VBA Présentation de Visual Basic Visual Basic : Basic : dérivé du langage Basic (Biginner s All purpose Symbolic Instruction Code) des années 60 Visual : dessin et aperçu de l interface

Plus en détail

S. Laporte C# mode console DAIGL TS1

S. Laporte C# mode console DAIGL TS1 Bases du langage C# I. C# en mode console (mode texte) Avantages par rapport au mode graphique (Application Windows): - C'est un mode plus proche de l'approche algorithmique (pas de notions de composants,

Plus en détail

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année UFR Sciences et Techniques Licence S&T 1ère année Informatique UE 102 Architecture des ordinateurs et Algorithmique de base Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ UFR Sciences et Techniques

Plus en détail

PL/SQL : procédures et déclencheurs. Grégory Bonnet, AI Mouaddib Département Informatique Université de Caen

PL/SQL : procédures et déclencheurs. Grégory Bonnet, AI Mouaddib Département Informatique Université de Caen PL/SQL : procédures et déclencheurs Grégory Bonnet, AI Mouaddib Département Informatique Université de Caen Introduction Introduction générale Étendre SQL pour l aide à la décision Nombreuses formes du

Plus en détail

Formation Unix/Linux (6) Le Shell: programmation et écriture de scripts

Formation Unix/Linux (6) Le Shell: programmation et écriture de scripts Formation Unix/Linux (6) Le Shell: programmation et écriture de scripts Olivier BOEBION Mars 2004 1 Les expressions conditionnelles et les structures de contrôle 1.1 La commande test La commande interne

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES 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étail

Cours n 6 SQL : Langage de définition des données (LDD)

Cours n 6 SQL : Langage de définition des données (LDD) Cours n 6 SQL : Langage de définition des données (LDD) Chantal Reynaud Université Paris X - Nanterre UFR SEGMI - IUP MIAGE Cours de Systèmes de Gestion de Données Licence MIAGE 2003/2004 1 Plan I. Langage

Plus en détail

Initiation aux bases de données et à la programmation événementielle

Initiation aux bases de données et à la programmation événementielle Initiation aux bases de données et à la programmation événementielle Cours N 6 : VBA sous ACCESS Souheib BAARIR. Page web : http://pagesperso-systeme.lip6.fr/souheib.baarir/bdvba/support.htm E-mail : souheib.baarir@u-paris10.fr

Plus en détail

Maintenir les contraintes d'intégrité

Maintenir les contraintes d'intégrité Maintenir les contraintes d'intégrité Contraintes d'intégrité Plusieurs possibilités pour les maintenir: Dans les définitions des tables Triggers Utilisation de vues et des contraintes sur les vues With

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance de cours/td Université Paris-Diderot Objectifs: Découverte du type String. Comprendre qu il y a des types différents. Maîtriser les expressions booléennes dans

Plus en détail

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition)

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition) Avant-propos 1. Les objectifs de ce livre 13 2. Les principaux sujets qu'aborde ce livre 13 3. À qui s adresse ce livre? 14 4. Les pré-requis 14 Introduction à MySQL 1. Introduction aux bases de données

Plus en détail

Chapitre 1 Installer MySQL 5 21

Chapitre 1 Installer MySQL 5 21 Chapitre 1 Installer MySQL 5 21 1.1. Les outils nécessaires... 22 1.2. Télécharger et installer le serveur MySQL... 22 Télécharger la dernière version... 22 Lancer l installation sous Windows... 23 Lancer

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 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étail

Norme de documentation des programmes

Norme de documentation des programmes 1. Introduction Norme de documentation des programmes Auteur : Marc Frappier Collaborateurs Benoit Fraikin Gabriel Girard Jean Goulet Gérard Houdeville Luc Lavoie Version : 1.02 30 août 2004 Département

Plus en détail

MySQL 5. Guide de l'administrateur et du développeur. Michael Kofler. Groupe Eyrolles, 2005 pour l édition française, ISBN : 2-212-11633-0

MySQL 5. Guide de l'administrateur et du développeur. Michael Kofler. Groupe Eyrolles, 2005 pour l édition française, ISBN : 2-212-11633-0 MySQL 5 Guide de l'administrateur et du développeur Michael Kofler Groupe Eyrolles, 2005 pour l édition française, ISBN : 2-212-11633-0 Table des matières Avant-propos..............................................

Plus en détail

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali 3. Langage Python 3 2 a. Introduction Présentation du langage Python : Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans l imposer) une approche modulaire et orientée objet

Plus en détail

TP Contraintes - Triggers

TP 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étail

PL/SQL 2014-2015. Bases de données 2

PL/SQL 2014-2015. Bases de données 2 Cours 10 : PL/SQL Procedural Language/SQL Blocs, variables, instructions, structures de contrôle, curseurs, gestion des erreurs, procédures/fonctions stockées, packages, triggers PL/SQL Chapitre 3 de la

Plus en détail

Bases du langage de programmation

Bases du langage de programmation Chapitre 6 Bases du langage de programmation Ce chapitre décrit les caractéristiques générales du langage procédural de programmation de MySQL : structure d un programme ; déclaration et affectation de

Plus en détail

PL/SQL. Procedural Language/ Structured Query Language. UPMC - UFR 919 Ingéniérie - Introduction aux Bases de Données Relationnelles (BD-2I009) 1

PL/SQL. Procedural Language/ Structured Query Language. UPMC - UFR 919 Ingéniérie - Introduction aux Bases de Données Relationnelles (BD-2I009) 1 PL/SQL Procedural Language/ Structured Query Language UPMC - UFR 919 Ingéniérie - Introduction aux Bases de Données Relationnelles (BD-2I009) 1 Plan Introduction Structure d'un programme Les variables

Plus en détail

FONCTIONS DE TRAITEMENT} COUNT

FONCTIONS DE TRAITEMENT} COUNT Nom Prénom Promotion Date Buhl Damien Année 1 Groupe 2 21 Janvier 2007 CER Prosit n 22 Mots-Clés : - Requête/Langage SQL Le langage SQL (Structured Query Language) est un langage de requêtes, il permet

Plus en détail

Requêtes SQL avec la date et le groupement Chapitre 7 série 3 Base de données AcciRoute SOLUTIONS

Requêtes SQL avec la date et le groupement Chapitre 7 série 3 Base de données AcciRoute SOLUTIONS 2003-07-01 1 Requêtes SQL avec la date et le groupement Chapitre 7 série 3 Base de données AcciRoute SOLUTIONS Voici MRD de la BD AcciRoute pour représenter les rapports d accidents de la route. Le MRD

Plus en détail

Modification des données stockées dans une base. LIF4 - Initiation aux Bases de données : SQL - 3. Exemple. Insertion. Insertion utilisant une requête

Modification des données stockées dans une base. LIF4 - Initiation aux Bases de données : SQL - 3. Exemple. Insertion. Insertion utilisant une requête Modification des données stockées dans une base LIF4 - Initiation aux Bases de données : SQL - 3 E.Coquery emmanuel.coquery@liris.cnrs.fr http ://liris.cnrs.fr/ ecoquery La modification s effectue par

Plus en détail

Chapitre 5 : Les procédures stockées PL/SQL

Chapitre 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étail

Oracle Le langage procédural PL/SQL

Oracle 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étail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/5 Titre professionnel : Reconnu par l Etat de niveau III (Bac), inscrit au RNCP (arrêté du 12/10/07, J.O. n 246 du 23/10/07) (32 semaines) Unité 1 : Structurer une application 6 semaines Module

Plus en détail

Norme de programmation pour le cours et les travaux pratiques

Norme de programmation pour le cours et les travaux pratiques Université du Québec École de technologie supérieure Service des enseignements généraux www.seg.etsmtl.ca INF130 Ordinateurs et programmation Norme de programmation pour le cours et les travaux pratiques

Plus en détail

Premiers exemples de traitements

Premiers exemples de traitements #include #include Premiers exemples de traitements void main() float b(0.0); float c(0.0); float delta(0.0); cin >> b >> c; delta = b*b - 4*c; if (delta < 0.0) cout

Plus en détail

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html. R.R. Université Lyon 2

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html. R.R. Université Lyon 2 Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html 1 Mode de fonctionnement sous R TRAVAILLER SOUS R 2 R est un interpréteur, il permet de programmer avec le langage S

Plus en détail

Licence 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étail

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale Département Génie Informatique BD50 TP5 : Développement PL/SQL Avec Oracle SQL Developer Gestion Commerciale Françoise HOUBERDON & Christian FISCHER Copyright Avril 2007 Présentation de la gestion commerciale

Plus en détail

Conception de bases de données relationnelles

Conception de bases de données relationnelles Conception de bases de données relationnelles Langage PL/(pg)SQL Marie Szafranski 2015-2016 ensiie 1 2015-2016 ensiie 1 Aperçu de PL/(pg)SQL Aperçu de PL/(pg)SQL PL/SQL : Procedural Language for SQL (Oracle)

Plus en détail

DECLARE : n'est nécessaire que si il y a des déclarations locales au bloc.

DECLARE : n'est nécessaire que si il y a des déclarations locales au bloc. Introduction Utilisation de PL/SQL : Procedural Language : langage de développement pour Oracle PL/SQL est un langage hôte, ce qui signifie qu'il peut accueillir des ordres SQL, il est proche du Pascal

Plus en détail

EXCEL. Chapitre 4 : Le langage Visual Basic Application. Claude Duvallet

EXCEL. Chapitre 4 : Le langage Visual Basic Application. Claude Duvallet Chapitre 4 : Le langage Visual Basic Application Claude Duvallet Université du Havre UFR des Sciences et Techniques 25 rue Philippe Lebon BP 540 76058 Le Havre Cedex Courriel : Claude.Duvallet@gmail.com

Plus en détail

SQL : Origines et Evolutions

SQL : Origines et Evolutions SQL : Origines et Evolutions SQL est dérivé de l'algèbre relationnelle et de SEQUEL Il a été intégré à SQL/DS, DB2, puis ORACLE, INGRES, Il existe trois versions normalisées, du simple au complexe : SQL1

Plus en détail

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

Cours Web n o 7 MySQL et PHP

Cours Web n o 7 MySQL et PHP Introduction aux bases de données Cours Web n o 7 MySQL et PHP Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 7 novembre 2005 S.-D. Gouraud, P. Senellart

Plus en détail

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28

1/28. I Utiliser à bon escient les types de données proposés par SQL, ou. Introduction 3/28 Introduction 1/28 2/28 Anne-Cécile Caron Licence MIAGE - BDD 2015-2016 Objectifs Après ce cours, les TD et TP correspondants, vous devez être capables de I Créer des tables à partir d un modèle I Utiliser

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

2011 Hakim Benameurlaine 1

2011 Hakim Benameurlaine 1 Table des matières 1 CRÉATION DES OBJETS DE BASES DE DONNÉES... 2 1.1 Architecture d une base de données... 2 1.1.1 Niveau logique... 2 1.1.2 Niveau physique... 3 1.2 Gestion d une base de données... 3

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes

Programmation en Python - Cours 2 : Premiers programmes Programmation en Python - Cours 2 : Premiers programmes 2013/2014 Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Saisie de données par l utilisateur : input(),

Plus en détail

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie Cours Web Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr Structured Query Language Langage de manipulation des données stockées dans une base de données interrogation/insertion/modification/suppression

Plus en détail

OI40: bases de données, TP 2

OI40: bases de données, TP 2 OI40: bases de données, TP 2 Frédéric Lassabe October 26, 2010 Ce TP requiert d avoir bien compris le TP précédent. 1 Sujet Lors de ce TP, il sera question d améliorer la base de données du TP précédent.

Plus en détail