A faire pour les autres types de données créées

CREATE OR REPLACE FUNCTION cen_attribution_personne_auteur_point_flore(integer)
  RETURNS integer AS
$BODY$
DECLARE
	id_entite_courante alias FOR $1;
	myrec RECORD;
	var_ese_id_entite bigint;
	var_chaine_auteur character varying;
        var_individu_auteur character varying;
	var_compteur integer;
BEGIN
	FOR myrec IN SELECT CASE WHEN observateur IS NULL THEN 'ANONY' ELSE REPLACE(observateur,'$','&') END AS observateur FROM point_flore_a_importer WHERE id_entite=id_entite_courante LOOP
		RAISE NOTICE 'nouvel ligne de résultat';		
		var_chaine_auteur:=myrec.observateur;
		--RAISE NOTICE '       var_chaine_auteur %', var_chaine_auteur;
		var_compteur:=1;
		var_individu_auteur:=NULL;
		LOOP
			var_individu_auteur:=split_part(var_chaine_auteur,'&',var_compteur);
			--RAISE NOTICE '       var_individu_auteur %', var_individu_auteur;
			IF length(var_individu_auteur)=0 THEN EXIT;
			END IF;
			EXECUTE 
				$req$
					INSERT INTO personne_est_auteur_donnee (id_entite, code_personne, ordre) VALUES ($req$||id_entite_courante||$req$, split_part('$req$||var_chaine_auteur||$req$','&','$req$||var_compteur||$req$'), $req$||var_compteur||$req$)
				$req$;
			--RAISE NOTICE '       ESE numéro %', id_entite_courante;
			--RAISE NOTICE '       Auteur numéro %', var_compteur;
			--RAISE NOTICE '       nouvel auteur attribué %', var_individu_auteur;
			var_compteur:=var_compteur+1;
			var_individu_auteur:=NULL;
			--RAISE NOTICE 'compteur vaut maintenant : %', var_compteur;
		END LOOP;
	END LOOP;
	RETURN 1;
END;
$BODY$
    LANGUAGE plpgsql;