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

Récupération de résultats depuis un SELECT

  • Exemple :
    CREATE OR REPLACE PROCEDURE nomEtudiant(numEtud integer)  AS $$
    DECLARE
      nom VARCHAR;
    BEGIN
       SELECT etud_nom INTO nom FROM etudiant WHERE etud_num=numEtud;
    END; $$ LANGUAGE plpgsql;
    
    CREATE OR REPLACE FUNCTION nomPrenomEtudiant(numEtud integer) RETURNS VARCHAR AS $$
    DECLARE
      nom VARCHAR;
      prenom VARCHAR;
      nom_prenom VARCHAR;
    BEGIN
       SELECT etud_nom, etud_prenom  INTO nom, prenom FROM etudiant WHERE etud_num=numEtud;
       -- possibilité de postfixer la clause INTO
       -- SELECT etud_nom, etud_prenom FROM etudiant WHERE etud_num=numEtud INTO nom, prenom;
       nom_prenom := prenom || ' ' || nom;
       RETURN nom_prenom;
    END; $$ LANGUAGE plpgsql;
  • Exécution :
    => CALL nomEtudiant(1);
    CALL
    => SELECT nomPrenomEtudiant(20000001);
     nomprenometudiant
    -------------------
     Jacques Martin
    (1 row)