return: text lang: plpgsql src: | DECLARE result TEXT; BEGIN -- Réplication des médecins dans Base IF EXISTS ( SELECT * FROM pmsi.t_medecins WHERE oid <> 0 AND COALESCE(medecin_id,0) = 0 AND t_medecins.nom <> '' AND oid IN (SELECT oid FROM pmsi.p_oids WHERE code_table LIKE ('medecin%')) ) THEN BEGIN PERFORM base.cti_initialize_medecins(); EXCEPTION WHEN others THEN RAISE NOTICE 'Erreur %' , 'base.cti_initialize_medecins'; END; END IF; -- Maintenance des spécialités absentes UPDATE pmsi.t_medecins SET specialite_id = 0 WHERE specialite_id is null; UPDATE pmsi.t_medecins SET specialite_interne_id = 0 WHERE specialite_interne_id is null; -- Mise à jour table DELETE FROM pmsi.t_medecins_c WHERE pmsi.t_medecins_c.oid not in (select oid from pmsi.t_medecins); UPDATE pmsi.t_medecins_c SET code = v_medecins_7.code, nom = v_medecins_7.nom, prenom = v_medecins_7.prenom, nom_prenom = v_medecins_7.nom_prenom, no_adeli = v_medecins_7.no_adeli, specialite_id = v_medecins_7.specialite_id, specialite_medecin_code = v_medecins_7.specialite_medecin_code, specialite_medecin_texte = v_medecins_7.specialite_medecin_texte, specialite_interne_id = v_medecins_7.specialite_interne_id, specialite_interne_medecin_code = v_medecins_7.specialite_interne_medecin_code, specialite_interne_medecin_texte = v_medecins_7.specialite_interne_medecin_texte, medecin_reference_id = v_medecins_7.medecin_reference_id, medecin_reference_code = v_medecins_7.medecin_reference_code, medecin_reference_nom = v_medecins_7.medecin_reference_nom, medecin_reference_prenom = v_medecins_7.medecin_reference_prenom, medecin_reference_nom_prenom = v_medecins_7.medecin_reference_nom_prenom, medecin_reference_no_adeli = v_medecins_7.medecin_reference_no_adeli, specialite_medecin_reference_id = v_medecins_7.specialite_medecin_reference_id, specialite_medecin_reference_code = v_medecins_7.specialite_medecin_reference_code, specialite_medecin_reference_texte = v_medecins_7.specialite_medecin_reference_texte, specialite_interne_medecin_reference_id = v_medecins_7.specialite_interne_medecin_reference_id, specialite_interne_medecin_reference_code = v_medecins_7.specialite_interne_medecin_reference_code, specialite_interne_medecin_reference_texte = v_medecins_7.specialite_interne_medecin_reference_texte FROM pmsi.v_medecins_7 WHERE t_medecins_c.oid = v_medecins_7.oid AND ( t_medecins_c.code IS DISTINCT FROM v_medecins_7.code OR t_medecins_c.nom IS DISTINCT FROM v_medecins_7.nom OR t_medecins_c.prenom IS DISTINCT FROM v_medecins_7.prenom OR t_medecins_c.nom_prenom IS DISTINCT FROM v_medecins_7.nom_prenom OR t_medecins_c.no_adeli IS DISTINCT FROM v_medecins_7.no_adeli OR t_medecins_c.specialite_id IS DISTINCT FROM v_medecins_7.specialite_id OR t_medecins_c.specialite_medecin_code IS DISTINCT FROM v_medecins_7.specialite_medecin_code OR t_medecins_c.specialite_medecin_texte IS DISTINCT FROM v_medecins_7.specialite_medecin_texte OR t_medecins_c.specialite_interne_id IS DISTINCT FROM v_medecins_7.specialite_interne_id OR t_medecins_c.specialite_interne_medecin_code IS DISTINCT FROM v_medecins_7.specialite_interne_medecin_code OR t_medecins_c.specialite_interne_medecin_texte IS DISTINCT FROM v_medecins_7.specialite_interne_medecin_texte OR t_medecins_c.medecin_reference_id IS DISTINCT FROM v_medecins_7.medecin_reference_id OR t_medecins_c.medecin_reference_code IS DISTINCT FROM v_medecins_7.medecin_reference_code OR t_medecins_c.medecin_reference_nom IS DISTINCT FROM v_medecins_7.medecin_reference_nom OR t_medecins_c.medecin_reference_prenom IS DISTINCT FROM v_medecins_7.medecin_reference_prenom OR t_medecins_c.medecin_reference_nom_prenom IS DISTINCT FROM v_medecins_7.medecin_reference_nom_prenom OR t_medecins_c.medecin_reference_no_adeli IS DISTINCT FROM v_medecins_7.medecin_reference_no_adeli OR t_medecins_c.specialite_medecin_reference_id IS DISTINCT FROM v_medecins_7.specialite_medecin_reference_id OR t_medecins_c.specialite_medecin_reference_code IS DISTINCT FROM v_medecins_7.specialite_medecin_reference_code OR t_medecins_c.specialite_medecin_reference_texte IS DISTINCT FROM v_medecins_7.specialite_medecin_reference_texte OR t_medecins_c.specialite_interne_medecin_reference_id IS DISTINCT FROM v_medecins_7.specialite_interne_medecin_reference_id OR t_medecins_c.specialite_interne_medecin_reference_code IS DISTINCT FROM v_medecins_7.specialite_interne_medecin_reference_code OR t_medecins_c.specialite_interne_medecin_reference_texte IS DISTINCT FROM v_medecins_7.specialite_interne_medecin_reference_texte ); INSERT INTO pmsi.t_medecins_c( oid, code, nom, prenom, nom_prenom, no_adeli, specialite_id, specialite_medecin_code, specialite_medecin_texte, specialite_interne_id, specialite_interne_medecin_code, specialite_interne_medecin_texte, medecin_reference_id, medecin_reference_code, medecin_reference_nom, medecin_reference_prenom, medecin_reference_nom_prenom, medecin_reference_no_adeli, specialite_medecin_reference_id, specialite_medecin_reference_code, specialite_medecin_reference_texte, specialite_interne_medecin_reference_id, specialite_interne_medecin_reference_code, specialite_interne_medecin_reference_texte) SELECT oid, code, nom, prenom, nom_prenom, no_adeli, specialite_id, specialite_medecin_code, specialite_medecin_texte, specialite_interne_id, specialite_interne_medecin_code, specialite_interne_medecin_texte, medecin_reference_id, medecin_reference_code, medecin_reference_nom, medecin_reference_prenom, medecin_reference_nom_prenom, medecin_reference_no_adeli, specialite_medecin_reference_id, specialite_medecin_reference_code, specialite_medecin_reference_texte, specialite_interne_medecin_reference_id, specialite_interne_medecin_reference_code, specialite_interne_medecin_reference_texte FROM pmsi.v_medecins_7 WHERE oid NOT IN (SELECT oid FROM pmsi.t_medecins_c); PERFORM base.cti_update_classes('pmsi', 't_medecins_c', 'MEDECIN',''); RETURN 'OK'; END;