Cette fonction retourne pour l'entité passée en paramètre la liste des codes des auteurs séparés par le caractère “$”.
Les auteurs d'une ese sont stockés dans la table “personne_est_auteur_donnee” par 3 attributs clefs primaires : - l'identifiant de la donnée :“id_entite” - le code de l'observateur : “code_personne” - l'ordre de cet observateur : “ordre”
Or, traditionnellement, les auteurs sont présentés à la suite les un des autres, dans une colonne auteur. Notamment dans les fichiers SIG traditionnels et les tableurs. Le stockage “en colonne” de ces auteurs rend pourtont l'exploitation de cette métadonnée importante difficile. Cette fonction reproduit pour chaque donnée la liste de ses auteurs qu'elle sépare par le caractère “$”.
cen_liste_personne_auteur_ese(integer)
l'identifiant de l'ese (entier)
La liste des codes d'auteurs (séparés par des “$”) de l'ese considérée (text)
CREATE FUNCTION cen_liste_personne_auteur_ese(integer) RETURNS text AS $_$ DECLARE id_entite alias FOR $1; myrec RECORD; var_code_personne character varying(5); var_liste_auteur character varying(50) DEFAULT ''; BEGIN FOR myrec IN SELECT id_entite, code_personne, ordre FROM personne_est_auteur_donnee WHERE personne_est_auteur_donnee.id_entite=id_entite ORDER BY ordre ASC LOOP var_code_personne:=myrec.code_personne; var_liste_auteur:=var_liste_auteur||'$'||var_code_personne; END LOOP; RETURN ltrim(var_liste_auteur,'$'); END; $_$ LANGUAGE plpgsql;