Utilisez l'instruction RAISE pour rapporter des messages et lever des erreurs.
RAISE niveau 'format' [, expression [, ...]];
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 Chapitre 17, Configuration du serveur 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 %. Les arguments peuvent être de simples variables ou des expressions et 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 d'intercepter cette exception avec EXCEPTION ... WHEN RAISE_EXCEPTION THEN ... mais l'origine du RAISE déclencheur est inconnue.