メッセージの報告とエラーの発生
メッセージを報告し、エラーを発生させるには、RAISE 文を使用します。
この文の構文は次のとおりです。
RAISE level 'format' [, identifier [...]];
format の内側では、後に続くコンマ区切りの ID のプレースホルダーとしてパーセント文字 (%) が使用されます。 次のように、複数の % と ID のペアを指定することができます。
RAISE NOTICE 'Welcome % %', firstname, lastname;この例では、NOTICE メッセージの最初の % 文字が firstname の値で置き換えられ、2 番目の % 文字が lastname の値で置き換えられます。
メッセージ・レベルは、以下のとおりです。
- DEBUG メッセージは、pg.log のみに書き込まれます。
- NOTICE メッセージは、データベース・ログに書き込まれ、クライアント・アプリケーションに転送されます。
- EXCEPTION メッセージは、データベース・ログに書き込まれ、致命的ではないメッセージとしてクライアント・アプリケーションに転送されます。通常、このメッセージは (キャッチされなければ) トランザクションを中止します。
次に、RAISE 文の例を示します。
RAISE NOTICE 'Calling cs_create_job(%)', job_id;この例では、ストリング内の % が job_id で置き換えられ、メッセージがクライアントと pg.log 内に表示されます。
RAISE EXCEPTION 'Inexistent ID --> %', user_id;この EXCEPTION 文は、(例外がキャッチされなければ) トランザクションを中止し、メッセージをデータベース・ログに書き込みます。