-- 1/3 : Création de la table temporaire
DROP TABLE IF EXISTS w_dbsetup
;

CREATE TEMP TABLE w_dbsetup AS
    SELECT 
    	CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid,
    	type,
    	code,
    	texte,
    	bloquante
    FROM pmsi.t_codes_retour_groupeur 
    ORDER BY type, code LIMIT 0
;

-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
    oid,
    type,
    code,
    texte,
    bloquante
)
VALUES
(1, 'C', '010', 'RSS MULTIUNITÉ AVEC NUMÉRO DE RSS INCONSTANT', '0'),
(1, 'C', '011', 'NUMÉRO DE RSS ABSENT', '0'),
(1, 'C', '013', 'DATE DE NAISSANCE ABSENTE', '0'),
(1, 'C', '014', 'DATE DE NAISSANCE NON NUMÉRIQUE', '0'),
(1, 'C', '015', 'DATE DE NAISSANCE IMPROBABLE PAR RAPPORT À LA DATE D''ENTRÉE', '0'),
(1, 'C', '016', 'CODE SEXE ABSENT', '0'),
(1, 'C', '017', 'CODE SEXE ERRONÉ', '0'),
(1, 'C', '019', 'DATE D''ENTRÉE ABSENTE', '0'),
(1, 'C', '020', 'DATE D''ENTRÉE NON NUMÉRIQUE', '0'),
(1, 'C', '021', 'DATE D''ENTRÉE INCOHÉRENTE', '0'),
(1, 'C', '023', 'RSS MULTIUNITÉ : CHAÎNAGE DATE D''ENTRÉE   DATE DE SORTIE INCOHÉRENT', '0'),
(1, 'C', '024', 'MODE D''ENTRÉE ABSENT', '0'),
(1, 'C', '025', 'MODE D''ENTRÉE ERRONÉ OU PROVENANCE ERRONÉE', '0'),
(1, 'C', '026', 'MODE D''ENTRÉE INCORRECT OU PROVENANCE INCORRECTE POUR COMMENCER UN RSS', '0'),
(1, 'C', '027', 'RSS MULTIUNITÉ : MODE D''ENTRÉE INCORRECT OU PROVENANCE INCORRECTE SUR UN RUM DE SUITE', '0'),
(1, 'C', '028', 'DATE DE SORTIE ABSENTE', '0'),
(1, 'C', '029', 'DATE DE SORTIE NON NUMÉRIQUE', '0'),
(1, 'C', '030', 'DATE DE SORTIE INCOHÉRENTE', '0'),
(1, 'C', '032', 'RUM AVEC INCOHÉRENCE DATE DE SORTIE   DATE D''ENTRÉE', '0'),
(1, 'C', '033', 'MODE DE SORTIE ABSENT', '0'),
(1, 'C', '034', 'MODE DE SORTIE ERRONÉ, OU DESTINATION ERRONÉE', '0'),
(1, 'C', '035', 'MODE DE SORTIE INCORRECT OU DESTINATION INCORRECTE POUR CLORE UN RSS', '0'),
(1, 'C', '036', 'NOMBRE DE SÉANCES NON NUMÉRIQUE', '0'),
(1, 'C', '037', 'RSS MULTIUNITÉ : PRÉSENCE DE SÉANCES SUR UN DES RUM', '0'),
(1, 'C', '039', 'DATE DE NAISSANCE INCOHÉRENTE', '0'),
(1, 'C', '040', 'DIAGNOSTIC PRINCIPAL ABSENT', '0'),
(1, 'C', '041', 'CODE DE DIAGNOSTIC PRINCIPAL NE RESPECTANT PAS LE FORMAT DE LA CIM', '0'),
(1, 'C', '042', 'CODE DE DIAGNOSTIC ASSOCIÉ NE RESPECTANT PAS LE FORMAT DE LA CIM', '0'),
(1, 'C', '043', 'CODE D''ACTE NE RESPECTANT PAS LE FORMAT DE LA CCAM', '0'),
(1, 'C', '045', 'RSS MULTIUNITÉ : DATE DE NAISSANCE INCONSTANTE', '0'),
(1, 'C', '046', 'RSS MULTIUNITÉ : CODE SEXE INCONSTANT', '0'),
(1, 'C', '049', 'RSS MULTIUNITÉ : MODE DE SORTIE INCORRECT OU DESTINATION INCORRECTE POUR UN RUM AUTRE QUE LE DERNIER', '0'),
(1, 'C', '050', 'DÉLAI DE SÉJOUR INCOMPATIBLE AVEC LE PRINCIPE ADMINISTRATIF DE PRESTATION INTERÉTABLISSEMENT', '0'),
(1, 'C', '051', 'CODE DE DIAGNOSTIC RELIÉ NE RESPECTANT PAS LE FORMAT DE LA CIM', '0'),
(1, 'C', '052', 'NOMBRE DE RÉALISATIONS D''ACTES NON NUMÉRIQUE, OU ERRONÉ', '0'),
(1, 'C', '053', 'PROVENANCE ABSENTE', '0'),
(1, 'C', '054', 'DESTINATION ABSENTE', '0'),
(1, 'C', '055', 'NOMBRE DE DA OU DE DAD ABSENT', '0'),
(1, 'C', '056', 'NOMBRE DE DA OU DE DAD NON NUMÉRIQUE', '0'),
(1, 'C', '057', 'NOMBRE DE ZONES D''ACTES ABSENT', '0'),
(1, 'C', '058', 'NOMBRE DE ZONES D''ACTES NON NUMÉRIQUE', '0'),
(1, 'C', '059', 'FORMAT DE RUM INCONNU', '0'),
(1, 'C', '062', 'UNITÉ MÉDICALE NON RENSEIGNÉE', 'N'),
(1, 'C', '064', 'DATE SYSTÈME ANTÉRIEURE À LA DATE D''ENTRÉE', 'N'),
(1, 'C', '065', 'DATE SYSTÈME ANTÉRIEURE À LA DATE DE SORTIE', 'N'),
(1, 'C', '066', 'NOMBRE DE SÉANCES : VALEUR INVRAISEMBLABLE', 'N'),
(1, 'C', '067', 'DIAGNOSTIC PRINCIPAL : N''A JAMAIS EXISTÉ DANS LA CIM', '0'),
(1, 'C', '068', 'DIAGNOSTIC PRINCIPAL : N''EXISTE PLUS DANS LA CIM', '0'),
(1, 'C', '070', 'DIAGNOSTIC ASSOCIÉ : N''A JAMAIS EXISTÉ DANS LA CIM', '0'),
(1, 'C', '071', 'DIAGNOSTIC ASSOCIÉ : N''EXISTE PLUS DANS LA CIM', '0'),
(1, 'C', '073', 'ACTE N''AYANT JAMAIS EXISTE DANS LA CCAM', '0'),
(1, 'C', '076', 'NUMÉRO FINESS DE FORMAT INCORRECT', 'N'),
(1, 'C', '077', 'DATE D''ENTRÉE IMPROBABLE CAR TROP ANCIENNE', 'N'),
(1, 'C', '078', 'DATE D''ENTREE DU RUM INCOMPATIBLE AVEC L''UTILISATION D''UN ACTE CCAM', '0'),
(1, 'C', '079', 'DATE DE SORTIE DU RUM INCOMPATIBLE AVEC L''UTILISATION D''UN ACTE CCAM', '0'),
(1, 'C', '080', 'CODE POSTAL NON RENSEIGNÉ', 'N'),
(1, 'C', '081', 'CODE POSTAL NON NUMÉRIQUE', 'N'),
(1, 'C', '082', 'POIDS D''ENTREE NON NUMÉRIQUE', '0'),
(1, 'C', '083', 'ZONE RÉSERVÉE NON VIDE', 'N'),
(1, 'C', '084', 'DIAGNOSTIC PRINCIPAL INVRAISEMBLABLE CAR RARE', 'N'),
(1, 'C', '085', 'DIAGNOSTIC PRINCIPAL INVRAISEMBLABLE EN RAISON DE L''ÂGE', 'N'),
(1, 'C', '086', 'DIAGNOSTIC PRINCIPAL INCOMPATIBLE AVEC LE SEXE INDIQUÉ', '0'),
(1, 'C', '087', 'DIAGNOSTIC PRINCIPAL IMPRECIS', 'N'),
(1, 'C', '088', 'CODES Z A ÉVITER EN DP CAR N''EST HABITUELLEMENT PAS UN MOTIF D''HOSPITALISATION', 'N'),
(1, 'C', '090', 'DIAGNOSTIC ASSOCIÉ INVRAISEMBLABLE CAR RARE', 'N'),
(1, 'C', '091', 'DIAGNOSTIC ASSOCIÉ INVRAISEMBLABLE EN RAISON DE L''ÂGE', 'N'),
(1, 'C', '092', 'DIAGNOSTIC ASSOCIÉ INCOMPATIBLE AVEC LE SEXE INDIQUÉ', 'N'),
(1, 'C', '093', 'DIAGNOSTIC ASSOCIÉ IMPRECIS', 'N'),
(1, 'C', '094', 'DIAGNOSTIC RELIÉ : N''A JAMAIS EXISTÉ DANS LA CIM', '0'),
(1, 'C', '095', 'DIAGNOSTIC RELIÉ : N''EXISTE PLUS DANS LA CIM', '0'),
(1, 'C', '096', 'DIAGNOSTIC RELIÉ INVRAISEMBLABLE CAR RARE', 'N'),
(1, 'C', '097', 'DIAGNOSTIC RELIÉ INVRAISEMBLABLE EN RAISON DE L''ÂGE', 'N'),
(1, 'C', '098', 'DIAGNOSTIC RELIÉ INCOMPATIBLE AVEC LE SEXE INDIQUÉ', 'N'),
(1, 'C', '099', 'DIAGNOSTIC RELIÉ IMPRÉCIS', 'N'),
(1, 'C', '100', 'TYPE D''AUTORISATION D''UNITE MEDICALE NON ACCEPTEE', 'N'),
(1, 'C', '101', 'TYPE D''AUTORISATION DE LIT DEDIE NON ACCEPTE', 'N'),
(1, 'C', '102', 'DATE DE REALISATION DE L''ACTE CCAM INCOHERENTE', 'N'),
(1, 'C', '103', 'CODE D''ACTIVITE D''UN ACTE CCAM NON RENSEIGNEE OU VALEUR ERRONEE', '0'),
(1, 'C', '110', 'ACTIVITE 4 INEXISTANTE POUR UN ACTE CCAM', '0'),
(1, 'C', '111', 'CODE D''ACTIVITE AUTRE QUE 4 INEXISTANT POUR UN ACTE CCAM', 'N'),
(1, 'C', '112', 'GESTE COMPLEMENTAIRE SANS ACTE PRINCIPAL', 'N'),
(1, 'C', '113', 'CODE INTERDIT EN DP CAR TRES IMPRECIS', '0'),
(1, 'C', '114', 'CODE INTERDIT EN DP PARCE QU''IL S''AGIT D''UNE CAUSE EXTERNE DE MORBIDITE (V, W, X, Y)', '0'),
(1, 'C', '115', 'CODE INTERDIT EN DP PARCE QU''IL S''AGIT D''UNE CATEGORIE NON VIDE OU D''UN CODE PERE INTERDIT', '0'),
(1, 'C', '116', 'CODE INTERDIT EN DR CAR TRES IMPRECIS', '0'),
(1, 'C', '117', 'CODE INTERDIT EN DR PARCE QU''IL S''AGIT D''UNE CAUSE EXTERNE DE MORBIDITE (V, W, X, Y)', '0'),
(1, 'C', '118', 'CODE INTERDIT EN DR PARCE QU''IL S''AGIT D''UNE CATEGORIE NON VIDE OU D''UN CODE PERE INTERDIT', '0'),
(1, 'C', '119', 'CODE INTERDIT EN DA PARCE QU''IL S''AGIT D''UNE CATEGORIE NON VIDE OU D''UN CODE PERE INTERDIT', '0'),
(1, 'C', '120', 'CONFIRMATION DU RSS NÉCESSAIRE MAIS ABSENTE', '0'),
(1, 'C', '121', 'CODE DE CONFIRMATION DU RSS INCORRECT', 'N'),
(1, 'C', '122', 'CODE DE TYPE DE MACHINE DE RADIOTHÉRAPIE INCORRECT', 'N'),
(1, 'C', '123', 'CODE DE DOSIMÉTRIE INCORRECT', 'N'),
(1, 'C', '124', 'CONFIRMATION DU RSS NON NECESSAIRE ET PRESENTE', '0'),
(1, 'C', '125', 'AGE GESTATIONNEL  NON NUMERIQUE', '0'),
(1, 'C', '126', 'AGE GESTATIONNEL  REQUIS ABSENT', '0'),
(1, 'C', '127', 'AGE GESTATIONNEL  INCOHERENT', '0'),
(1, 'C', '128', 'POIDS D''ENTREE SUR UN OU DEUX CARACTERES NON AUTORISE', '0'),
(1, 'C', '129', 'AGE GESTATIONNEL  INCOHERENT PAR RAPPORT AU POIDS D''ENTREE', '0'),
(1, 'C', '130', 'DP EN O OU Z37 NON AUTORISE PAR RAPPORT À L''AGE', '0'),
(1, 'C', '131', 'DR EN O OU Z37 NON AUTORISE PAR RAPPORT À L''AGE', '0'),
(1, 'C', '132', 'DA EN O OU Z37 NON AUTORISE PAR RAPPORT À L''AGE', '0'),
(1, 'C', '133', 'DP EN P OU Z38 NON AUTORISE PAR RAPPORT À L''AGE', '0'),
(1, 'C', '134', 'DR EN P OU Z38 NON AUTORISE PAR RAPPORT À L''AGE', '0'),
(1, 'C', '135', 'DA EN P OU Z38 NON AUTORISE PAR RAPPORT À L''AGE', '0'),
(1, 'C', '142', 'DATE DE REALISATION DE L''ACTE D''ACCOUCHEMENT NON RENSEIGNEE OU INCOHERENTE', '0'),
(1, 'C', '143', 'MODE DE SORTIE INCOHERENT PAR RAPPORT AU DP', '0'),
(1, 'C', '145', 'NOMBRE DE SEANCES A ZERO AVEC DP MOTIF DE SEANCES', '0'),
(1, 'C', '146', 'NOMBRE DE SEANCES INCOHERENT PAR RAPPORT A LA DUREE DE SEJOUR', '0'),
(1, 'C', '147', 'DONNEES INCOMPATIBLES AVEC LE DP P95', '0'),
(1, 'C', '148', 'ACTE INCOMPATIBLE AVEC LE SEXE INDIQUÉ', '0'),
(1, 'C', '149', 'ACTE INCOMPATIBLE AVEC L'' AGE INDIQUÉ', '0'),
(1, 'C', '150', 'DP DE SEANCES NON AUTORISE DANS UN RSS MULTIUNITÉ', '0'),
(1, 'C', '160', 'DATE DES DERNIERES REGLES NON NUMERIQUE', '0'),
(1, 'C', '161', 'DATE DES DERNIERES REGLES INCOHERENTE', '0'),
(1, 'C', '162', 'DATE DES DERNIERES REGLES REQUISE ABSENTE', '0'),
(1, 'C', '163', 'DATE DES DERNIERES REGLES INCONSTANTE', '0'),
(1, 'C', '164', 'DATE DES DERNIERES REGLES INCOMPATIBLE AVEC LE SEXE INDIQUÉ', '0'),
(1, 'C', '165', 'DATE DES DERNIERES REGLES POSTERIEURE A LA DATE D''ENTREE DU SEJOUR', '0'),
(1, 'C', '166', 'DATE DES DERNIERES REGLES TROP ANCIENNE PAR RAPPORT A LA DATE D''ENTREE DU SEJOUR', '0'),
(1, 'C', '167', 'ACTIVITE 1 OBLIGATOIRE POUR UN ACTE CCAM MAIS ABSENTE', '0'),
(1, 'C', '168', 'POIDS D''ENTREE REQUIS PAR RAPPORT A L''AGE', '0'),
(1, 'C', '169', 'IGS NON NUMÉRIQUE', '0'),
(1, 'C', '170', 'EXTENSION DOCUMENTAIRE OBLIGATOIRE POUR UN ACTE CCAM MAIS ABSENTE', '0'),
(1, 'C', '173', 'EXTENSION DOCUMENTAIRE D''UN ACTE CCAM ERRONEE', '0'),
(1, 'C', '174', 'AGE GESTATIONNEL INCOHÉRENT PAR RAPPORT À LA PRÉSENCE D''UN ACTE D''ACCOUCHEMENT', '0'),
(1, 'C', '175', 'NOMBRE D''IVG ANTÉRIEURS : FORMAT INCORRECT', 'N'),
(1, 'C', '176', 'ANNÉE DE L''IVG PRÉCÉDENTE : FORMAT INCORRECT', 'N'),
(1, 'C', '177', 'ANNÉE DE L''IVG PRÉCÉDENTE INCOHÉRENTE PAR RAPPORT A LA DATE DE NAISSANCE', 'N'),
(1, 'C', '178', 'NOMBRE DE NAISSANCES VIVANTES ANTÉRIEURES : FORMAT INCORRECT', 'N'),
(1, 'C', '179', 'GHM 14Z08Z : ABSENCE D''ACTE CCAM INDIQUANT SI L''IVG EST MEDICAMENTEUSE OU INSTRUMENTALE', 'N'),
(1, 'C', '180', 'DIAGNOSTIC PRINCIPAL : CODE OMS RÉSERVÉ POUR USAGE URGENT', 'N'),
(1, 'C', '181', 'DIAGNOSTIC RELIÉ : CODE OMS RÉSERVÉ POUR USAGE URGENT', 'N'),
(1, 'C', '182', 'DIAGNOSTIC ASSOCIÉ : CODE OMS RÉSERVÉ POUR USAGE URGENT', 'N'),
(1, 'C', '184', 'CODE POSTAL NON RENSEIGNÉ', 'N'),
(1, 'C', '185', 'ACTE CCAM : FORMAT INCORRECT DE L''EXTENSION ATIH', 'N'),
(1, 'C', '186', 'ACTE CCAM : EXTENSION ATIH NON ACCEPTÉE', 'N'),
(1, 'C', '187', 'DIAGNOSTIC RELIÉ REQUIS ABSENT', 'N'),
(1, 'C', '223', 'CONFIRMATION DU RSS NÉCESSAIRE ET PRÉSENTE', 'N'),
(1, 'G', '002', 'INCOMPATIBILITE SEXE DIAGNOSTIC PRINCIPAL', '0'),
(1, 'G', '003', 'DIAGNOSTIC PRINCIPAL INCOHÉRENT', '0'),
(1, 'G', '004', 'TABLES ENDOMMAGÉES OU ERREUR DANS LE PARCOURS DE L''ARBRE', '0'),
(1, 'G', '005', 'DIAGNOSTIC PRINCIPAL : CODE INSUFFISAMMENT PRÉCIS POUR LA CLASSIFICATION DES GHM', '0'),
(1, 'G', '006', 'NOMBRE DE SEANCES STRICTEMENT SUPERIEUR A ZERO ET DP N''EST PAS UN MOTIF DE SEANCES', '0'),
(1, 'G', '007', 'POIDS INCOMPATIBLE POUR UN NOUVEAU-NÉ', '0'),
(1, 'G', '080', 'SÉJOUR AVEC ACTE OPERATOIRE MINEUR RECLASSANT DANS UN GHM MÉDICAL', 'N'),
(1, 'G', '200', 'ERREUR TABLES : ACTE NON TROUVÉ', '0'),
(1, 'G', '201', 'ERREUR TABLES : DIAGNOSTIC NON AFFECTÉ À UNE RACINE MÉDICALE', '0'),
(1, 'G', '202', 'ERREUR TABLES : AUTRE', '0'),
(1, 'G', '203', 'DIALYSE PÉRITONÉALE AVEC UNE DURÉE DE SÉJOUR DE 0 JOUR', '0'),
(1, 'G', '204', 'DP D''ACCOUCHEMENT HORS D''UN ÉTABLISSEMENT INCOMPATIBLE AVEC MENTION D''UN ACTE D''ACCOUCHEMENT', '0'),
(1, 'G', '205', 'DIAGNOSTIC D''ACCOUCHEMENT SANS ACTE D''ACCOUCHEMENT', '0'),
(1, 'G', '206', 'ACTE D''ACCOUCHEMENT SANS DIAGNOSTIC D''ACCOUCHEMENT', '0'),
(1, 'G', '207', 'ACTE D''AVORTEMENT SANS DIAGNOSTIC EN RAPPORT', '0'),
(1, 'G', '208', 'DIAGNOSTIC D''ENTRÉE D''ANTE PARTUM AVEC DIAGNOSTIC INDIQUANT LE POST PARTUM', '0'),
(1, 'G', '209', 'DIAGNOSTIC D''ENTRÉE DU POST PARTUM AVEC DIAGNOSTIC INDIQUANT L''ANTE PARTUM', '0'),
(1, 'G', '210', 'AUCUN DES DIAGNOSTICS NE PERMET DE GROUPER', '0'),
(1, 'G', '211', 'DP DE LA PÉRIODE PÉRINATALE, INCOMPATIBLE AVEC L''ÂGE OU LE MODE D''ENTRÉE', '0'),
(1, 'G', '212', 'DP DE PRÉPARATION À L''IRRADIATION AVEC UN NOMBRE DE SÉANCE À 0', '0'),
(1, 'G', '213', 'INCOMPATIBILITÉ POIDS À L''ENTRÉE DANS L''UNITÉ MÉDICALE ET ÂGE GESTATIONNEL', '0'),
(1, 'G', '214', 'MANQUE ACTE DE DIALYSE OU EXTENSIONS DES CODES DIAGNOSTICS', '0'),
(1, 'G', '215', 'MANQUE ACTE DE PRÉPARATION À L''IRRADIATION', '0'),
(1, 'G', '216', 'MANQUE ACTE D''IRRADIATION', '0'),
(1, 'G', '222', 'SÉJOUR  AVEC ACTE OPÉRATOIRE NON MINEUR RECLASSANT DANS UN GHM MÉDICAL', 'N'),
(1, 'I', '004', 'TABLES ENDOMMAGÉES', '0'),
(1, 'I', '008', 'CORRUPTION D''UNE TABLE', '0'),
(1, 'I', '009', 'TABLE INTROUVABLE', '0'),
(1, 'I', '500', 'FICHIER D''AUTORISATIONS DES UNITÉS MÉDICALES NON TROUVÉ', '0'),
(1, 'I', '501', 'FICHIER D''AUTORISATIONS DES UNITÉS MÉDICALES CORROMPU', '0'),
(1, 'I', '502', 'DATE DE SORTIE DU RSS NON GÉRÉE PAR LES TABLES BINAIRES', '0'),
(1, 'P', 'G01', 'UN MÊME CODE PO (PRÉLÈVEMENT D''ORGANE) EST DÉCLARÉ PLUSIEURS FOIS POUR UN MÊME N°ADMINISTRATIF LOCAL DE SÉJOUR', 'N'),
(1, 'P', 'G02', 'UN CODE PO DE LA LISTE PO1, PO2, PO3, PO4 N''EST PAS ASSOCIÉ À UN CODE PO DE LA LISTE PO5, PO6, PO7, PO8, PO9, POA', 'N'),
(1, 'P', 'G03', 'UN CODE PO DE LA LISTE PO5, PO6, PO7, PO8, PO9, POA N''EST PAS ASSOCIÉ À UN CODE PO DE LA LISTE PO1, PO2, PO3, PO4', 'N'),
(1, 'P', 'G04', 'UN CODE PO DE LA LISTE PO1, PO2, PO3, PO4 EST DÉCALRÉ ALORS QUE LA FONCTION DE GROUPAGE N''EN TROUVE PAS', 'N'),
(1, 'P', 'G05', 'PAS DE PO DECLARÉ ALORS QUE LA FONCTION DE GROUPAGE EN TROUVE', 'N'),
(1, 'P', 'I01', 'UN ENREGISTREMENT PIP EST DÉCLARÉ PLUSIEURS FOIS POUR UN MÊME N°ADMINISTRATIF LOCAL DE SÉJOUR', 'N'),
(1, '', '000', 'Aucune erreur de groupage', '0'),
(0, '', '**', 'Non renseigné', '0')
;

-- 3/3 : Màj de la table iCTI
UPDATE pmsi.t_codes_retour_groupeur SET 
	code = w_dbsetup.code
FROM w_dbsetup
WHERE t_codes_retour_groupeur.oid = w_dbsetup.oid AND w_dbsetup.oid = 0;


UPDATE pmsi.t_codes_retour_groupeur SET 
	texte = w_dbsetup.texte, 
	type = w_dbsetup.type,
	bloquante = w_dbsetup.bloquante
FROM w_dbsetup
WHERE 
	t_codes_retour_groupeur.type || t_codes_retour_groupeur.code = w_dbsetup.type || w_dbsetup.code
	AND (
		t_codes_retour_groupeur.texte IS DISTINCT FROM w_dbsetup.texte OR
		t_codes_retour_groupeur.bloquante IS DISTINCT FROM w_dbsetup.bloquante OR
		t_codes_retour_groupeur.type IS DISTINCT FROM w_dbsetup.type
	);


INSERT INTO pmsi.t_codes_retour_groupeur(
	oid,type,code,texte,bloquante)
SELECT 
	oid,type,code,texte,bloquante
FROM w_dbsetup 
WHERE 
	oid = 0 
	AND oid NOT IN (SELECT oid FROM pmsi.t_codes_retour_groupeur);


INSERT INTO pmsi.t_codes_retour_groupeur(type,code,texte,bloquante)
SELECT 
	type,code,texte,bloquante
FROM w_dbsetup 
WHERE 
	oid <> 0 
	AND type || code NOT IN (SELECT type || code FROM pmsi.t_codes_retour_groupeur);