next up previous contents
Next: 7.2 Modification d'une procédure, Up: 7 Sous programmes : Previous: 7 Sous programmes :   Contents

7.1 Création d'une procédure, fonction


CREATE PROCEDURE p_augmnt
( a_pourc  IN NUMBER,
  a_qualif IN VARCHAR ) IS
BEGIN
  UPDATE personnel
     SET trtmnt = ROUND ( trtmnt * ( 1 + a_pourc / 100 ), 2 )
     WHERE qualif = a_qualif;
  IF SQL%NOT_FOUND '
     THEN RAISE_AFPLICATION_ERROR ( -20011, 'qualification inexistante' );
  ENDIF;
END ;

CREATE OR REPLACE FUNCTION f_salaire
( a_nom IN VARCHAR,
  a_prnm IN VARCHAR )
RETURN NUMBER IS
  a_renum NUMBER(8,2);
BEGIN
  SELECT NVL(trtmnt, 0) + NVL(vact, 0)
         INTO a_renum
         FROM personnel
         WHERE nom||prnm = a_nom||a_prnm;
  RETURN (a_renum);
EXCEPTION
  WHEN NO_DATA_FOUND
       THEN RAISE_APPUCATION_ERROR(-20010, 'Personnel inexistant');
END;


Florence Bannay 2000-11-13