S-JIS[2020-11-10] 変更履歴

raise

PostgreSQLPL/pgSQLのraise文について。


概要

PL/pgSQLのraise文は、メッセージを出力したりエラー(例外)を発生させたりする。

raise 〔ログレベル〕 '書式文字列', 引数…

ログメッセージ出力の例

create or replace procedure example(arg date)
language plpgsql
as $$
begin
  raise info 'argument = %', arg;
end
$$;

psql上で実行

hishidamadb=> call example('2020/11/10');
INFO:  argument = 2020-11-10
CALL

raise文でメッセージを指定すると、コンソールにメッセージを表示する。

ログレベルはdebug, log, info, notice, warning, exceptionで、省略するとexceptionになる。
exceptionの場合は、メッセージ出力後に例外を発生させる(その場でエラー終了する)。

書式文字列中に「%」を書くと、その後ろの引数の値に置換される。


デフォルトでは、ログレベルdebug, logはコンソールに何も表示されない。
psql上でclient_min_messagesにdebugを設定すると表示されるようになる。(デフォルトはnotice)(infoは常に表示される)

hishidamadb=> set client_min_messages = 'debug';

同様に、log_min_messagesでサーバーログに出力するログレベルを設定できるらしい。


PL/pgSQLへ戻る / PostgreSQLへ戻る / 技術メモへ戻る
メールの送信先:ひしだま