Cette fonction retourne pour l'espèce passée en paramètre (cd_noom) la liste des Observateurs classés par ordre alphabétique..
md.liste_noms_observateurs_espece(text)
le code du taxon (attribut cd_nom)
La liste des Observateurs classés par ordre alphabétique
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');