他のバージョンの文書 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

35.9. エラーとメッセージ

RAISE文を使用してメッセージを報告し、エラーを発生することができます。

RAISE level 'format' [, variable [, ...]];

使用可能なレベルは DEBUGLOGINFONOTICEWARNING および EXCEPTION です。 EXCEPTION はエラーを発生させ、現在のトランザクションをアボートします。 他のレベルは異なる優先度レベルのメッセージを生成するだけです。 特定の優先度のエラーメッセージがクライアントに報告するか、サーバログに書き込むか、またはその両方はlog_min_messagesおよびclient_min_messages設定変数によって制御されます。 詳細については、項16.4を参照してください。

書式文字列内では、%は次の省略可能な引数の文字列表現で書き換えられます。 %%と記述することで%リテラルを表すことができます。 現在、省略可能な引数は単純な変数でなければならず、式を書くことはできません。 書式もまた、単純な文字列リテラルでなければなりません。

以下の例では、v_job_idの値は文字列内の%を置き換えます。

RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;

以下の例では、トランザクションを中断させ、指定されたエラーメッセージを表示します。

RAISE EXCEPTION 'Nonexistent ID --> %', user_id;

どのようなメッセージによって起こったかにかかわらず、現在 RAISE EXCEPTION は常に P0001 の SQLSTATE コードを発生します。 この例外を EXCEPTION ... WHEN RAISE_EXCEPTION THEN ... で捕捉できますが、対応する RAISE を判定する方法はありません。