PostgreSQLのPL/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でサーバーログに出力するログレベルを設定できるらしい。