Table des matières

Liste formatée des auteurs d'une donnée

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 “$”.

- Nom de la fonction

cen_liste_personne_auteur_ese(integer)

- Paramètres

l'identifiant de l'ese (entier)

- Résulat retourné

La liste des codes d'auteurs (séparés par des “$”) de l'ese considérée (text)

- Script pl/pgsql

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;