3
3
Mostafa Hanoune
Interactions avec le
Serveur Oracle
Les Bases PL/SQL 3-2
Objectifs
Dans ce chapitre, vous allez apprendre à intégrer les instructions standard SQL SELECT, INSERT,
UPDATE, et DELETE dans des blocs PL/SQL. Vous apprendrez aussi à contrôler les transactions et à
déterminer l’issue des instructions SQL de type LMD en PL/SQL.
3-2
Mostafa Hanoune
Objectifs
A la fin de ce chapitre, vous saurez :
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
Ecrire des instructions LMD en PL/SQL
Contrôler les transactions en PL/SQL
Déterminer l’issue des instructions LMD
Les Bases PL/SQL 3-3
Vue d’ensemble
Lorsque vous avez besoin d’extraire ou de modifier des informations de la base de données, vous devez
utiliser le SQL. Le PL/SQL permet la manipulation des données, ainsi que le contrôle des transactions
avec le SQL. Vous pouvez utiliser des instructions SELECT pour remplir des variables avec des valeurs
extraites d’un enregistrement d’une table. Vos commandes LMD (Langage de Manipulation de Données)
peuvent traiter plusieurs enregistrements à la fois.
Comparaison des instructions SQL et PL/SQL
Un bloc PL/SQL n’est pas une unité de transaction. Les COMMIT, SAVEPOINT, et ROLLBACK
sont indépendants des blocs, mais vous pouvez utiliser ces commandes dans un bloc.
Le PL/SQL ne permet pas le langage de définition des données (LDD), à savoir les instructions
comme CREATE TABLE, ALTER TABLE, ou DROP TABLE...
Le PL/SQL ne permet pas le langage de contrôle des données (LCD), à savoir les instructions telles
que GRANT ou REVOKE.
Pour plus d’informations sur le package DBMS_SQL, voir
Oracle8 Server Application Developer’s Guide, Release 8.
Note au formateur
Vous pouvez mentionner qu’avec le module DBMS_SQL, on peut utiliser des instructions LDD et LCD.
3-3
Mostafa Hanoune
Instructions SQL en PL/SQL
Extraire une ligne de la base de grâce à
la commande SELECT. Un seul jeu de
valeurs peut être retourné.
Modifiez des lignes dans la base en
utilisant des commandes LMD.
Contrôlez une transaction avec les
commandes COMMIT, ROLLBACK, ou
SAVEPOINT.
Déterminez l’issue d’une commande
LMD avec des curseurs implicites.
Les Bases PL/SQL 3-4
Extraire des données en utilisant PL/SQL
Utilisez l’instruction SELECT pour extraire des données de la base de données.
Dans la syntaxe:
select_list est une liste comprenant au moins une colonne, où peuvent figurer des
expressions SQL, des fonctions mono-ligne, ou des fonctions de
groupe
variable_name est une variable scalaire qui contiendra la valeur extraite
record_name est l’enregistrement PL/SQL qui contiendra les valeurs extraites
table spécifie le nom de la table de la base de données
condition est composée du noms de colonnes, d’expressions, de constantes, et
d’opérateurs de comparaison, ainsi que de variables et constantes
PL/SQL
Vous pouvez profiter de l’étendue de l’instruction SELECT sur le Serveur Oracle. Souvenez-vous
que les variables hôtes doivent être précédées d’un deux points (:).
3-4
Mostafa Hanoune
Instructions SELECT en PL/SQL
Extraire une ligne de la base de donn
Extraire une ligne de la base de donné
ées
es
avec SELECT.
avec SELECT.
Syntaxe
Syntaxe
SELECT select_list
INTO {variable_name[, variable_name]...
| record_name}
FROM table
WHERE condition;
Les Bases PL/SQL 3-5
3-5
Mostafa Hanoune
Instructions SELECT en PL/SQL
La clause INTO est Obligatoire.
La clause INTO est Obligatoire.
Exemple :
Exemple :
DECLARE
v_deptno NUMBER(2);
v_loc VARCHAR2(15);
BEGIN
SELECT deptno, loc
INTO v_deptno, v_loc
FROM dept
WHERE dname = 'SALES';
...
END;
Clause INTO
La clause INTO est obligatoire, et apparaît entre les clauses SELECT et FROM. Elle est utilisée pour
spécifier les noms des variables qui contiendront les valeurs retournées par l’ordre SELECT. Vous devez
prévoir une variable pour chaque élément ramené, et leur ordre doit correspondre à celui des éléments
sélectionnés.
On utilise une clause INTO pour remplir des variables PL/SQL ou des variables hôtes.
Les Requêtes Doivent RamenerUn et Un Seul Enregistrement
Les instructions SELECT dans un bloc PL/SQL respectent la norme ANSI du SQL, selon laquelle les
requêtes doivent retourner un enregistrement et un seul. Le retour de plusieurs enregistrements, ou
d’aucun enregistrement engendre une erreur.
Le PL/SQL gère ces erreurs en suscitant des exceptions standards, que vous pouvez intercepter dans la
section EXCEPTION du bloc grâce aux exceptions NO_DATA_FOUND et TOO_MANY_ROWS (la
gestion des exceptions est traitée dans un chapitre ultérieur). Vous devez utiliser les instructions SELECT
si la requête ne ramène qu’un seul enregistrement.
Note au formateur
La clause INTO est obligatoire dans l’instruction SELECT en PL/SQL. Cela s’oppose au SQL, ou la
clause INTO est interdite.
1 / 22 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !