=====Liste formatée des observateurs d'une espèce ===== Cette fonction retourne pour l'espèce passée en paramètre (cd_noom) la liste des Observateurs classés par ordre alphabétique.. ====Nom de la fonction==== **md.liste_noms_observateurs_espece(text)** ====Paramètres==== le code du taxon (attribut cd_nom) ====Résultat retourné==== La liste des Observateurs classés par ordre alphabétique ====Script pl/pgsql==== CREATE OR REPLACE FUNCTION md.liste_noms_observateurs_espece(text) RETURNS text AS $BODY$ DECLARE myrec RECORD; var_cd_nom ALIAS for $1; var_liste_nom_observateur character varying DEFAULT ''; BEGIN FOR myrec IN SELECT TRIM(COALESCE(nom,'')||' '||COALESCE(prenom,'')) AS nom_prenom FROM md.personne WHERE code_personne IN (SELECT DISTINCT regexp_split_to_table(observateur, E'\&') FROM saisie.saisie_observation WHERE cd_nom = var_cd_nom) ORDER BY TRIM(COALESCE(nom,'')||' '||COALESCE(prenom,'')) ASC LOOP var_liste_nom_observateur:=var_liste_nom_observateur||', '||myrec.nom_prenom; END LOOP; RETURN substring(var_liste_nom_observateur from 3 FOR (length(var_liste_nom_observateur))::integer); END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION md.liste_noms_observateurs_espece(text) OWNER TO dba; SELECT md.liste_noms_observateurs_espece('65254');