35.9. Erreurs et Messages

Utilisez l'instruction RAISE pour rapporter des messages et lever des erreurs.

RAISE niveau 'format' [, variable [, ...]];

Les niveaux possibles sont DEBUG, LOG, INFO, NOTICE, WARNING et EXCEPTION. EXCEPTION lève une erreur (ce qui annule habituellement la transaction en cours). Les autres niveaux ne font que générer des messages aux différents niveaux de priorité. Quand les messages d'une priorité particulière sont indiqués par le client, écrit dans les traces du serveur ou à la fois contrôlé par les variables de configuration log_min_messages et client_min_messages. Voir le Section 16.4 pour plus d'informations.

Au sein de la chaîne de formatage, % est remplacé par la représentation de la chaîne argument optionnelle suivante. Écrivez %% pour signifier un caractère %. Notez que les arguments optionnels doivent actuellement être de simples variables, non des expressions et que le format doit être une simple chaîne de caractères.

Dans cet exemple, la valeur de v_job_id remplacera le % dans la chaîne.

RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;

Cet exemple interrompra la transaction avec le message d'erreur donné.

RAISE EXCEPTION 'Nonexistent ID --> %', id_utilisateur;

RAISE EXCEPTION génère toujours le même code SQLSTATE, P0001, quelque soit le message avec lequel il a été invoqué. Il est possible de récupérer cette exception avec EXCEPTION ... WHEN RAISE_EXCEPTION THEN ... mais il n'existe aucun moyen de savoir quel RAISE.