Bonjour,
Voilà: j'utilise une fonction avec une gestion des erreurs considérant les codes pour pgSQL. Malheureusement, les codes ne sont pas tous reconnus. J'aurai aimé savoir comment remédier à ce problème pour continuer ma migration. Je vous donne une exemple de fonction où la gestion des erreurs n'est pas reconnues:
CREATE OR REPLACE FUNCTION "DdC".lire_erreur()
RETURNS "varchar" AS
$BODY$DECLARE
libelle varchar(160);
num integer;
BEGIN
BEGIN
SELECT INTO num count(*) FROM erreur WHERE id_erreur=p_num;
EXCEPTION
WHEN successful_completion THEN
SELECT INTO libelle id_erreur||':'||libelle From erreur Where id_erreur = p_num;
WHEN OTHERS THEN
libelle := p_num||':ERREUR INDEFINIE';
END;
return libelle;
END; $BODY$
LANGUAGE 'plpgsql' VOLATILE;
Mais si je remplace successful_completion par unique_violation, ça marche...
Merci de me répondre
champijulie
Partager