式

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

# 39.4. 式

PL/pgSQL文で使用される式は全て、サーバの主SQLエクゼキュータを使用して処理されます。 例えば、以下のPL/pgSQL文

    IF expression THEN ...

が記述された時、PL/pgSQLは

    SELECT expression

を主SQLエンジンに供給して、上式を評価します。 項39.10.1において詳細を説明したように、`SELECT`コマンドの形成においてPL/pgSQL変数名は、その都度パラメータによって置換されます。 これにより、`SELECT`の問い合わせ計画は一度だけ準備することができ、その後の評価で異なった変数値を代入して再利用されます。 すなわち、式の最初の使用においては、実質的に`PREPARE`コマンドと同等です。 例えば、2つの整数変数`x`と`y`を宣言して、

    IF x < y THEN ...

という条件式を記述すると背後では

    PREPARE statement_name(integer, integer) AS SELECT $1 < $2;

と同等なプリペアドステートメントが作成されます。 そして`IF`文を実行する度にPL/pgSQLの最新の変数値をパラメータ値として供給して、このプリペアドステートメントに対して`EXECUTE`を行います。 項39.10.2に記述したように、こうして準備された問い合わせ計画は、データベース接続が切断されるまで保持されます。 通常この詳細は、PL/pgSQLユーザにとって重要ではありませんが、この知識は問題点の解析に有用です。

前のページ | ホーム | 次のページ
宣言 | 上に戻る | 基本的な文