pour déploiement auto v2 via gitlab
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

71 lines
2.0 KiB

return: text
lang: plpgsql
parameters:
p0:
type: integer
name: i_annee
p1:
type: boolean
name: i_do_analyse
default: 'true'
src: |
DECLARE
_lignes_supprimees int;
_lignes_supprimees_total int;
BEGIN
-- Supprime tous les rss antèrieur à une année donnée.
-- Supprime d'abord de la table p_rss pour ensuite supprimer tous les séjours qui sont en lien avec celle-ci
-- Penser à faire un VACUUM FULL des tables ensuite
_lignes_supprimees := 0;
_lignes_supprimees_total := 0;
IF i_annee < 2000 OR i_annee > date_part('year', CURRENT_DATE) - 1 THEN
RETURN 'La année doit se trouver entre le 2000 et ' || date_part('year', CURRENT_DATE) - 1;
END IF;
RAISE NOTICE 'Suppression des séjours < %', i_annee;
RAISE NOTICE '%','Suppression dans la table pmsi.p_rss';
DELETE
FROM pmsi.p_rss
WHERE mois_sortie < CONCAT(i_annee,00)
;
GET DIAGNOSTICS _lignes_supprimees = ROW_COUNT;
RAISE NOTICE '% lignes suprimée(s)', _lignes_supprimees;
_lignes_supprimees_total = _lignes_supprimees_total + _lignes_supprimees;
ANALYSE pmsi.p_rss
;
RAISE NOTICE '%','Suppression dans la table pmsi.p_chiffrier';
DELETE
FROM pmsi.p_chiffrier
WHERE mois < CONCAT(i_annee,00) -- eg. 202100
;
GET DIAGNOSTICS _lignes_supprimees = ROW_COUNT;
RAISE NOTICE '% lignes suprimée(s)', _lignes_supprimees;
_lignes_supprimees_total = _lignes_supprimees_total + _lignes_supprimees;
ANALYSE pmsi.p_chiffrier
;
RAISE NOTICE '%','Suppression dans la table pmsi.p_ventilation_um';
DELETE
FROM pmsi.p_ventilation_um
WHERE annee < i_annee
;
GET DIAGNOSTICS _lignes_supprimees = ROW_COUNT;
RAISE NOTICE '% lignes suprimée(s)', _lignes_supprimees;
_lignes_supprimees_total = _lignes_supprimees_total + _lignes_supprimees;
ANALYSE pmsi.p_ventilation_um
;
RETURN pmsi.cti_nettoyer_sejours(i_do_analyse, _lignes_supprimees_total);
END;