44.5. Champs des messages d'erreur et d'avertissement

Cette section décrit les champs qui peuvent apparaître dans les messages ErrorResponse et NoticeResponse. Chaque type de champ a un motif d'identification codé sur un octet. Tout type de champ donné doit apparaître au plus une fois par message.

S

Gravité (Severity) : le contenu du champ peut être ERROR, FATAL ou PANIC dans un message d'erreur, WARNING, NOTICE, DEBUG, INFO ou LOG dans un message d'avertissement, ou la traduction régionale de l'un d'eux. Toujours présent.

C

Code : code SQLSTATE de l'erreur (voir Annexe A). Non internationalisable. Toujours présent.

M

Message : premier message d'erreur, en clair. Doit être court et précis (typiquement une ligne). Toujours présent.

D

Détail : deuxième message d'erreur, optionnel, apportant des informations supplémentaires sur le problème. Peut être sur plusieurs lignes.

H

Astuce (Hint) : suggestion optionnelle de résolution du problème. Différent de Détail parce qu'il offre un conseil (potentiellement inapproprié) plutôt que des faits réels. Peut être sur plusieurs lignes.

P

Position : valeur du champ, entier décimal ASCII indiquant un curseur sur la position de l'erreur dans la chaîne de requête originale. Le premier caractère a l'index 1. Les positions sont mesurées en caractères, non pas en octets.

W

Où (Where) : indication du contexte dans lequel l'erreur est survenue. Inclut, actuellement, une trace de la pile des appels des fonctions PL actives. Cette trace comprend une entrée par ligne, la plus récente en premier.

F

Fichier (File) : nom du fichier de code source comportant l'erreur.

L

Ligne (Line) : numéro de ligne dans le fichier de code source comportant l'erreur.

R

Routine : nom de la routine dans le code source comportant l'erreur.

Le client est responsable du formatage adapté à ses besoins des informations affichées ; en particulier par l'ajout de retours chariots sur les lignes longues, si cela s'avérait nécessaire. Les caractères de retour chariot apparaissant dans les champs de messages d'erreur devraient être traités comme des changements de paragraphes, non comme des changements de lignes.