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;
|