Next: 5.8 Curseur paramétré
Up: 5 Curseur :
Previous: 5.6 Fermeture d'un curseur
  Contents
Les ordres OPEN, FETCH et CLOSE sont implicites.
syntaxe [«étiquette»]
FOR nom_enregistrement IN nom_curseur | (SELECT... )
LOOP
....
END LOOP [étiquette];
Ex 1: DECLARE
CURSOR c_docteur IS
SELECT s.nom serv, p.nom nom, prnm, vacct
FROM service s, personnel p
WHERE s.cdsrv = p.cdsrv
AND qualif = 'DOCTEUR' .
AND vacct < (SELECT AVG(trtmnt) * 0.75
FROM personnel
WHERE qualif = 'INTERNE'
AND cdsrv = p.cdsrv);
BEGIN
FOR I IN c_docteur
LOOP
INSERT INTO docteur VALUES ( I.serv,I.nom,I.prnm,I.vacct ) ;
END LOOP;
END;
Ex2: BEGIN
FOR I IN (SELECT nom, prnm, sx, qualif, dattit
FROM personnel
WHERE sx = '2' AND TO_CHAR(dattit,'YY') IN ('90','91'))
LOOP
INSERT INTO embauche VALUES ( I.nom,I.prnm,I.sx,I.qualif,I.dattit );
END LOOP;
END;
Florence Bannay
2000-11-13