Académique Documents
Professionnel Documents
Culture Documents
2.4 Manipulation Des Données en PL SQL Modifier Avec Word
2.4 Manipulation Des Données en PL SQL Modifier Avec Word
1
loc=’Dakar’
Where deptno=50;
END ;
➢ SUPPRESSION
Syntaxe
Declare
Begin
Delete From NomTable
Where (Prédicat) ;
End ;
➢ EXEMPLE
Declare
Begin
Delete From Dept
Where deptno=50;
End ;
➢ CURSEURS
Un curseur est un pointeur sur cette zone de contexte. PL / SQL contrôle la zone
de contexte via un curseur. Un curseur contient les lignes (une ou plusieurs)
renvoyées par une instruction SQL. L'ensemble de lignes détenues par le curseur
est appelé ensemble actif.
2
Il existe deux types de curseurs
• Curseurs implicites
• Curseurs explicites
Curseurs implicites
Les curseurs implicites sont automatiquement créés par Oracle chaque fois qu'une
instruction SQL est exécutée, lorsqu'il n'existe pas de curseur explicite pour cette
instruction. Les programmeurs ne peuvent pas contrôler les curseurs implicites et
les informations qu’ils contiennent.
Chaque fois qu'une instruction DML (INSERT, UPDATE et DELETE) est émise,
un curseur implicite est associé à cette instruction. Pour les opérations INSERT,
le curseur contient les données à insérer. Pour les opérations UPDATE et
DELETE, le curseur identifie les lignes qui seraient affectées.
1
%FOUND
2
%NOT FOUND
3
3
%ISOPEN
Renvoie toujours FALSE pour les curseurs implicites, car Oracle ferme
automatiquement le curseur SQL après l'exécution de l'instruction SQL associée.
4
% ROWCOUNT
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
DECLARE
total_rows number(2);
4
BEGIN
UPDATE DEPT
SET LOC = 'DAKAR'
WHERE DEPTNO=10;
IF sql%notfound THEN
dbms_output.put_line('no DEPT selected'); ELSIF
sql%found THEN
total_rows := sql%rowcount;
dbms_output.put_line( total_rows || ' DEPT selected ');
END IF;
END;
/
Résultat
1 DEPT selected
1 row(s)
updated.
0.06 seconds
Curseurs explicites
Les curseurs explicites sont des curseurs définis par le programmeur permettant
de mieux contrôler la zone de contexte. Un curseur explicite doit être défini dans
la section déclaration du bloc PL / SQL. Il est créé sur une instruction SELECT
qui renvoie plusieurs lignes.
5
• Déclarer le curseur pour initialiser la mémoire
• Ouvrir le curseur pour allouer la mémoire
• Récupérer le curseur pour récupérer les données
• Fermer le curseur pour libérer la mémoire allouée
Déclarer le curseur
La déclaration du curseur définit le curseur avec un nom et l’instruction SELECT
associée.
Par exemple :
Ouvrir le curseur
L'ouverture du curseur alloue la mémoire au curseur et le prépare à extraire les
lignes renvoyées par l'instruction SQL. Par exemple, nous allons ouvrir le
curseur défini ci-dessus comme suit :
OPEN c_dept;
Fermer le curseur
Fermer le curseur signifie libérer la mémoire allouée. Par exemple, nous allons
fermer le curseur ouvert ci-dessus comme suit :
6
CLOSE c_dept;
DECLARE
v_deptno
deptartments.department_id%type;
v_dname
departments.department_name%type
; v_loc
departments.location_id%type;
CURSOR c_dept is
SELECT department_id, department_name, location_id FROM departments;
BEGIN
OPEN c_dept;
LOOP
FETCH c_dept into v_deptno, v_dname, v_loc;
EXIT WHEN c_dept%notfound;
dbms_output.put_line(v_deptno || ' ' || v_dname || ' ' || v_loc);
END LOOP;
CLOSE c_dept;
END;
/