PL/pgSQL/ターミナルにメッセージを表示する
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
----
⌣''[[PL/pgSQL入門ページに戻る>PL/pgSQL入門]]''
----
* メッセージを表示させる・RAISE [#fd81846b]
PL/pgSQLでプログラム開発しデバックする時など、メッセージ...
RAISEを使用すればメッセージを表示することができます。~
尚、例外であるEXCEPTIONについては、次の記事「[[エラー時の...
#contents
#htmlinsertpcsp(db-top.html,db-sp.html)
* RAISEの構文 [#s8ba9776]
RAISEの構文について以下に記します。~
尚、詳細なRAISEの説明については、「[[PostgreSQLのサイトを...
基本的な構文は以下のようになります。
RAISE [ level ] 'メッセージ'
変数などを表示したい場合は、%を使用します。
RAISE [ level ] 'メッセージ %', foo
複数の変数の値を表示したい場合は、以下ようになります。
RAISE [ level ] 'メッセージ foo=% bar=%', foo,bar
** levelについて [#vdd59fbb]
上記の構文の[level]ですが、以下のレベルを指定することがで...
levelは省略可能であり、省略した場合は、EXCEPTIONになりま...
-DEBUG
-LOG
-INFO
-NOTICE
-WARNING
-EXCEPTION
上述しましたが、EXCEPTIONについては、次の記事「[[エラー時...
* RAISEのサンプルプログラム [#r5be9c4d]
以下のようにEXCEPTIONを除いたサンプルを以下に記します。
#ref(raise_sample.sql)
CREATE OR REPLACE FUNCTION raise_sample()
RETURNS
void
AS $$
DECLARE
foo text := 'foo';
bar int := 123;
BEGIN
RAISE DEBUG 'DEBUG RAISE MESSAGE';
RAISE LOG 'LOG RAISE MESSAGE';
RAISE INFO 'INFO RAISE MESSAGE %', foo;
RAISE NOTICE 'NOTICE RAISE MESSAGE %,%', foo, bar;
RAISE WARNING 'WARNING RAISE MESSAGE';
END
$$ LANGUAGE plpgsql
;
levelにDEBUG, LOG, INFO, NOTICE, WARNINGを指定してメッセ...
* サンプルの実行 [#gfb31ec6]
以下のコマンドで上記のFUNCTIONを登録しました。~
みなさんの環境にあったオプションで登録してください。
$ psql -U sakura -f raise_sample.sql sakuradb
CREATE FUNCTION
実行結果は以下の通りになります。
sakuradb=# select raise_sample();
INFO: INFO RAISE MESSAGE foo
NOTICE: NOTICE RAISE MESSAGE foo,123
WARNING: WARNING RAISE MESSAGE
raise_sample
--------------
(1 row)
上記の通りターミナルにINFO, NOTICE, WARNINGが表示されてい...
DEBUG, LOGが出力されていません。~
この出力は、一部ログに出力されています。
$ cat /var/log/postgresql/postgresql-9.3-main.log | grep...
2016-10-23 21:09:26 JST LOG: LOG RAISE MESSAGE
2016-10-23 21:09:26 JST WARNING: WARNING RAISE MESSAGE
LOGとWARNINGが出力されているのが確認できます。~
(ディストリビューションやインストール方法によって出力され...
上記の出力をみても、DEBUGが表示されていません。~
これは、postgresql.confのlog_min_messagesにdebug1を指定す...
変更前
#log_min_messages = warning # values in orde...
変更後
log_min_messages = debug1 # values in orde...
ログ確認
$ cat /var/log/postgresql/postgresql-9.3-main.log | grep ...
<省略>
2016-10-23 21:19:07 JST DEBUG: DEBUG RAISE MESSAGE
2016-10-23 21:19:07 JST LOG: LOG RAISE MESSAGE
2016-10-23 21:19:07 JST INFO: INFO RAISE MESSAGE foo
2016-10-23 21:19:07 JST NOTICE: NOTICE RAISE MESSAGE fo...
2016-10-23 21:19:07 JST WARNING: WARNING RAISE MESSAGE
出力するレベルをdebug1にしたのですべて出力されているのが...
尚、出力レベルについてですが、client_min_messages, log_mi...
PostgreSQLサイトで詳細を確認してみてください。
以上、RAISEによるメッセージ出力でした。
----
⌣''[[PL/pgSQL入門ページに戻る>PL/pgSQL入門]]''
#htmlinsertpcsp(db-btm.html,db-sp.html)
終了行:
----
⌣''[[PL/pgSQL入門ページに戻る>PL/pgSQL入門]]''
----
* メッセージを表示させる・RAISE [#fd81846b]
PL/pgSQLでプログラム開発しデバックする時など、メッセージ...
RAISEを使用すればメッセージを表示することができます。~
尚、例外であるEXCEPTIONについては、次の記事「[[エラー時の...
#contents
#htmlinsertpcsp(db-top.html,db-sp.html)
* RAISEの構文 [#s8ba9776]
RAISEの構文について以下に記します。~
尚、詳細なRAISEの説明については、「[[PostgreSQLのサイトを...
基本的な構文は以下のようになります。
RAISE [ level ] 'メッセージ'
変数などを表示したい場合は、%を使用します。
RAISE [ level ] 'メッセージ %', foo
複数の変数の値を表示したい場合は、以下ようになります。
RAISE [ level ] 'メッセージ foo=% bar=%', foo,bar
** levelについて [#vdd59fbb]
上記の構文の[level]ですが、以下のレベルを指定することがで...
levelは省略可能であり、省略した場合は、EXCEPTIONになりま...
-DEBUG
-LOG
-INFO
-NOTICE
-WARNING
-EXCEPTION
上述しましたが、EXCEPTIONについては、次の記事「[[エラー時...
* RAISEのサンプルプログラム [#r5be9c4d]
以下のようにEXCEPTIONを除いたサンプルを以下に記します。
#ref(raise_sample.sql)
CREATE OR REPLACE FUNCTION raise_sample()
RETURNS
void
AS $$
DECLARE
foo text := 'foo';
bar int := 123;
BEGIN
RAISE DEBUG 'DEBUG RAISE MESSAGE';
RAISE LOG 'LOG RAISE MESSAGE';
RAISE INFO 'INFO RAISE MESSAGE %', foo;
RAISE NOTICE 'NOTICE RAISE MESSAGE %,%', foo, bar;
RAISE WARNING 'WARNING RAISE MESSAGE';
END
$$ LANGUAGE plpgsql
;
levelにDEBUG, LOG, INFO, NOTICE, WARNINGを指定してメッセ...
* サンプルの実行 [#gfb31ec6]
以下のコマンドで上記のFUNCTIONを登録しました。~
みなさんの環境にあったオプションで登録してください。
$ psql -U sakura -f raise_sample.sql sakuradb
CREATE FUNCTION
実行結果は以下の通りになります。
sakuradb=# select raise_sample();
INFO: INFO RAISE MESSAGE foo
NOTICE: NOTICE RAISE MESSAGE foo,123
WARNING: WARNING RAISE MESSAGE
raise_sample
--------------
(1 row)
上記の通りターミナルにINFO, NOTICE, WARNINGが表示されてい...
DEBUG, LOGが出力されていません。~
この出力は、一部ログに出力されています。
$ cat /var/log/postgresql/postgresql-9.3-main.log | grep...
2016-10-23 21:09:26 JST LOG: LOG RAISE MESSAGE
2016-10-23 21:09:26 JST WARNING: WARNING RAISE MESSAGE
LOGとWARNINGが出力されているのが確認できます。~
(ディストリビューションやインストール方法によって出力され...
上記の出力をみても、DEBUGが表示されていません。~
これは、postgresql.confのlog_min_messagesにdebug1を指定す...
変更前
#log_min_messages = warning # values in orde...
変更後
log_min_messages = debug1 # values in orde...
ログ確認
$ cat /var/log/postgresql/postgresql-9.3-main.log | grep ...
<省略>
2016-10-23 21:19:07 JST DEBUG: DEBUG RAISE MESSAGE
2016-10-23 21:19:07 JST LOG: LOG RAISE MESSAGE
2016-10-23 21:19:07 JST INFO: INFO RAISE MESSAGE foo
2016-10-23 21:19:07 JST NOTICE: NOTICE RAISE MESSAGE fo...
2016-10-23 21:19:07 JST WARNING: WARNING RAISE MESSAGE
出力するレベルをdebug1にしたのですべて出力されているのが...
尚、出力レベルについてですが、client_min_messages, log_mi...
PostgreSQLサイトで詳細を確認してみてください。
以上、RAISEによるメッセージ出力でした。
----
⌣''[[PL/pgSQL入門ページに戻る>PL/pgSQL入門]]''
#htmlinsertpcsp(db-btm.html,db-sp.html)
ページ名: