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;