L3 Info : SGBD
 
◃  Ch. 11 PL/pgSQL  ▹
 

Fonctions tables (en PL/PGSQL)

  • Le type de retour de ces fonctions est aussi SETOF nomTable.
  • Il faut utiliser un curseur pour parcourir toutes les lignes d'un résultat de SELECT.
  • Chaque ligne est renvoyée par l'instruction RETURN NEXT
  • Une instruction RETURN clos la fonction.
  • Exemple :
    create FUNCTION selectTitres(varchar) RETURNS SETOF livre AS $$
    DECLARE
      ligne livre%ROWTYPE;
    BEGIN
        FOR ligne IN SELECT * FROM livre WHERE liv_titre like $1 LOOP
            RETURN NEXT ligne;
        END LOOP;
        RETURN;
    END;
    $$ LANGUAGE plpgsql;
    
    SELECT * FROM selectTitres('Les %') AS t1;