Table des matières

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');