next up previous contents
Next: 2 Structure d'un bloc Up: plsqlflo Previous: Contents   Contents

1 Exemple de bloc PL/SQL


/*---BLOC AUGMENTATION--*/
DECLARE - **** Section facultative, déclaration des variables. ****
fonction                        personnel.qualif%TYPE;
traitement_moyen                NUMBER(8,2);
traitement                      traitement_moyen%TYPE;
traitement_null                 EXCEPTION;

BEGIN - **** Section obligatoire, traitement. ****
SELECT qualif, trtmnt
INTO fonction, traitement
FROM personnel
WHERE nom = '&nom' AND prnm = '&prenom';

SELECT ROUND( AVG(trtmnt), 2 )
INTO traitement_moyen
FROM personnel
WHERE qualif = fonction;

IF traitement IS NULL
THEN RAISE traitement_null;
ELSIF traitement >= traitement_moyen
THEN traitement := ROUND( traitement * 1.01, 2);
ELSE traitement := traitement_moyen;
END IF;

UPDATE personnel
SET trtmnt = traitement
WHERE nom = '&nom' AND prnm = '&prenom';

EXCEPTION - **** Section facultative, gestion des anomalies. ****
WHEN traitement_null
THEN INSERT INTO anomalie
VALUES('&nom', '&prenom', '!!!! TRAITEMENT NON DEFINI !!!!!');
END;
/


Florence Bannay 2000-11-13