return: text lang: plpgsql src: | DECLARE _cursor refcursor; _sqlcmd text; _todataprofile text; _schema text; result TEXT; BEGIN -- Suppression des profils inexistants _sqlcmd = 'SELECT substr(nspname,17) FROM pg_namespace WHERE substr(nspname,1,16) = ''rh_data_profile_'' AND LOWER(substr(nspname,17)) NOT IN (SELECT LOWER(t_data_profile.code) FROM rh.t_data_profile) ' ; OPEN _cursor FOR EXECUTE _sqlcmd; FETCH _cursor INTO _todataprofile; WHILE FOUND LOOP BEGIN RAISE NOTICE 'Suppression du data_profile %', _todataprofile; EXECUTE 'SELECT base.cti_perform_hors_transaction(''SELECT rh.cti_gen_data_profile_views('''''||_todataprofile||''''')'')'; EXCEPTION WHEN others THEN RAISE NOTICE 'Erreur %' , 'SELECT base.cti_perform_hors_transaction(''SELECT rh.cti_gen_data_profile_views('''''||_todataprofile||''''')'')'; END; FETCH _cursor INTO _todataprofile; END LOOP; CLOSE _cursor; -- Pour chaque data_profile défini, appeler rh.cti_gen_data_profile_views(_in_data_profile_code) -- Lister les _in_data_profile_code _sqlcmd = 'SELECT t_data_profile.code FROM rh.t_data_profile WHERE t_data_profile.code <> '''' ' ; OPEN _cursor FOR EXECUTE _sqlcmd; FETCH _cursor INTO _todataprofile; WHILE FOUND LOOP BEGIN RAISE NOTICE 'Traitement du data_profile %', _todataprofile; EXECUTE 'SELECT base.cti_perform_hors_transaction(''SELECT rh.cti_gen_data_profile_views('''''||_todataprofile||''''')'')'; EXCEPTION WHEN others THEN RAISE NOTICE 'Erreur %' , 'SELECT base.cti_perform_hors_transaction(''SELECT rh.cti_gen_data_profile_views('''''||_todataprofile||''''')'')'; END; FETCH _cursor INTO _todataprofile; END LOOP; CLOSE _cursor; return 'OK'; END;