エラーとメッセージ

PostgreSQL 8.0.0 文書
前のページ | 巻戻し | 第 35章PL/pgSQL - SQL手続き言語 | 早送り | 次のページ

# 35.9. エラーとメッセージ

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

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

使用可能なレベルは `DEBUG`、`LOG`、`INFO`、`NOTICE`、`WARNING` および `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` を判定する方法はありません。

前のページ | ホーム | 次のページ
カーソル | 上に戻る | トリガプロシージャ