Bonjour à toutes et à tous.

J'ai un petit soucis de compréhension avec l'utilisation de SQLERRM.

En gros, mon code est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<requete insert>

IF(SQL%FOUND) THEN
    vCrFonction := 1;
ELSE
    RAISE vErrInsert;
END IF
Un peu plus loin...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
EXCEPTION
    WHEN vErrInsert THEN
        vLibErreur := '[' ||SQLCODE||'] '||SQLERRM;
        Tracage de erreur
        RETURN -1;
END MaFonction;
En fait, je ne sais pas vraiment si mon SQLERRM va reprendre en plus de l'erreur qu'il y a eu dans la requete INSERT la requete elle-même. J'aimerais en effet tracer la requete si celle-ci a eu un soucis.

NB : Imaginons que ma fonction ne contienne que cet insert et pas d'autres bouts de code, pensez-vous que j'ai d'autres cas d'exceptions à prévoir ? Pour plus de sécurité, ne vaut-il pas mieux que je mette un OTHERS dans mon bloc d'exceptions afin de parer au pire (comme par exemple table soudainement absente) ?

Merci d'avance pour votre aide.

Bahan