Chap3 plsql SGBD-PL SQL Procedural Language Structured Query Language Chapitre Interaction avec Oracle et les curseurs Fa? çal Felhi felhi fayssal yahoo fr CI Interactions simples avec la base Extraire modi ?er inserer Le select ne doit renvoyer qu ? une
SGBD-PL SQL Procedural Language Structured Query Language Chapitre Interaction avec Oracle et les curseurs Fa? çal Felhi felhi fayssal yahoo fr CI Interactions simples avec la base Extraire modi ?er inserer Le select ne doit renvoyer qu ? une seule ligne Si le select renvoie plus d ? une ligne exception TOOMANYROWS ? ORA- Si le select ne renvoie aucune ligne exception NODATAFOUND ? ORA- pour ramener des lignes les curseurs CII Les curseurs Toutes les requêtes SQL sont associées à un curseur Ce curseur représente la zone mémoire utilisée pour analyser et exécuter la requête Le curseur peut être implicite pas déclaré par l ? utilisateur ou explicite Les curseurs explicites servent à retourner plusieurs lignes avec un select On distingue deux types de curseurs Les curseurs explicites Les curseurs implicites CNotion de curseur Le tableau suivant indique par opération de manipulation les commandes SQL susceptibles de jouer le rôle de curseur implicite et ou explicite Opération MAJ Interrogation Curseur implicite Insert Update Delete Curseur explicite ? Select ? Into Select CII Les curseurs implicites Ils sont associés aux ordres SELECT INSERT DELETE et UPDATE Ils sont déclarés automatiquement par ORACLE lors de l'exécution de la requête Attention un seul enregistrement doit être résultat pour une requête SELECT C Exemple d ? un curseur implicite DECLARE V deptno NUMBER V Loc VARCHAR BEGIN SELECT deptno loc INTO vdeptno vloc FROM dept WHERE upper dname ? SALES ? ? END ? Obligatoire C CExemple CException du select Condition Le SELECT identi ?e plus d ? une ligne ? Erreur Oracle Server ORA- Le SELECT n ? identi ?e aucune ligne ? Erreur Oracle Server ORA- Nom Exception TOOMANYROWS NODATAFOUND CExemple CExemple C Attributs du curseur implicite PL SQL fournit des attributs permettant d ? évaluer le résultat d ? un curseur implicite Attribut SQL ROWCOUNT SQL FOUND SQL NOTFOUND SQL ISOPEN Description Entier Nombre de lignes a ?ectées par le dernier ordre SQL Booléen TRUE si le dernier ordre SQL a ?ecte au moins une ligne Booléen TRUE si le dernier ordre SQL n ? a ?ecte aucune ligne Toujours FALSE pour les curseurs implicites Ces attributs sont utilisables comme des fonctions dans les ordres PL SQL MAIS PAS dans les commandes SQL C Exemple DECLARE VRowsUpdated NUMBER BEGIN UPDATE EMP SET sal sal WHERE deptno VRowsUpdated SQL ROWCOUNT -- SQL ISOPEN est FALSE INSERT INTO History Tab Values ? Dept ? VRowsUpdated SYSDATE END CII Les curseurs explicites Un curseur est une zone mémoire de taille ?xe utilisée par le moteur SQL pour analyser et interpréter un ordre SQL Un curseur explicite contrairement au curseur implicite est géré par l'utilisateur pour traiter un ordre Select qui ramène plusieurs lignes Tout curseur explicite géré dans la section exécution doit avoir été déclaré dans la section déclarative C ? est une commande SELECT pouvant ramener plusieurs lignes et qui est totalement à la charge du développeur Un curseur explicite doit être explicitement Déclaré dans la section DECLARE Géré par le développeur
Documents similaires










-
32
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 26, 2021
- Catégorie Business / Finance
- Langue French
- Taille du fichier 56.2kB