CREATE OR REPLACE FUNCTION cen_attribution_structure_auteur_point_faune(integer) RETURNS integer AS $BODY$ DECLARE id_entite_courante alias for $1; myrec RECORD; var_ese_id_entite bigint; var_chaine_structure character varying; var_structure_auteur character varying; var_compteur integer; BEGIN FOR myrec IN SELECT CASE WHEN structure is null THEN '' ELSE REPLACE(structure,'$','&') END AS structure FROM point_faune_a_importer WHERE id_entite=id_entite_courante LOOP RAISE NOTICE 'nouvel ligne de résultat'; var_chaine_structure:=myrec.structure; --RAISE NOTICE ' var_chaine_structure %', var_chaine_structure; var_compteur:=1; var_structure_auteur:=null; LOOP var_structure_auteur:=split_part(var_chaine_structure,'&',var_compteur); --RAISE NOTICE ' var_structure_auteur %', var_structure_auteur; IF length(var_structure_auteur)=0 THEN EXIT; END IF; EXECUTE $req$ INSERT INTO structure_est_auteur_donnee (id_entite, code_structure, ordre) VALUES ($req$||id_entite_courante||$req$, split_part('$req$||var_chaine_structure||$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_structure_auteur; var_compteur:=var_compteur+1; var_structure_auteur:=null; --RAISE NOTICE 'compteur vaut maintenant : %', var_compteur; END LOOP; END LOOP; RETURN 1; END; $BODY$ LANGUAGE 'plpgsql';