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;