L3 Info : SGBD
 
◃  Ch. 11 Oracle PL/SQL  ▹
 

Les fonctions

  • Une fonction est un sous-programme retournant une valeur et respectant la syntaxe suivante :
    CREATE [OR REPLACE] FUNCTION nomFunc (param1, paramn) RETURN type_retourné IS 
      -- zone de déclaration des variables locales
    BEGIN
    ...
    -- clause RETURN
    EXCEPTION
    ...
    -- clause RETURN
    END;
  • Une variable paramètre suit la syntaxe suivante :
    nom_param [IN|OUT|IN OUT] type_param
  • Exemple :
    CREATE OR REPLACE FUNCTION get_titreLivre_byID(id integer)
    RETURN VARCHAR IS
      titre VARCHAR(50) := '';
      nblivres NUMBER;
      alerteLivre EXCEPTION;
    BEGIN
      SELECT COUNT(*) INTO nblivres FROM LIVRE WHERE LIV_NUM=id;
      IF (nblivres = 0)  THEN
        RAISE alerteLivre;
      ELSE
        SELECT LIV_TITRE INTO titre FROM LIVRE WHERE LIV_NUM = id;
        RETURN titre;
      END IF;
    EXCEPTION
      WHEN alerteLivre then
          DBMS_OUTPUT.PUT_LINE('aucun livre ne correspond a cet identifiant : ' || id);
          RETURN titre;
    END;
    /
  • Utilisation :
    sql> SELECT get_titreLivre_byID(13) FROM dual;
        GET_TITRELIVRE_BYID(13)
        -----------------------
        Les Fleurs de Février
    
    sql> SELECT get_titreLivre_byID(-1) FROM dual;
    aucun livre ne correspond a cet identifiant : -1
        GET_TITRELIVRE_BYID(-1)
        -----------------------
        <null>