他のバージョンの文書 15 | 14 | 13 | 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

CALL

CALL — プロシージャを呼び出す

概要

CALL name ( [ argument ] [, ...] )

説明

CALLは、プロシージャを実行します。

プロシージャがいくつかの出力パラメータを持っている場合、それらの出力パラメータの値を含んだ結果の行を返します。

パラメータ

name

プロシージャの名前です(スキーマ修飾名も可)。

argument

プロシージャの呼び出しに対する引数式です。

引数は、name => valueという構文を使ってパラメータ名を含むことができます。 これは通常の関数呼び出しと同様に動作します。詳細は4.3を参照してください。

引数は、OUTパラメータを含む、デフォルトのないプロシージャパラメータすべてに対して与えなければなりません。 しかしながら、OUTパラメータに一致する引数は評価されませんので、それらに対してはNULLとだけ書くのが慣例です。 (OUTパラメータに対して何か他のものを書くと、PostgreSQLの将来のバージョンで互換性の問題が起きるかもしれません。)

注釈

プロシージャの呼び出しを許可されるためには、ユーザがプロシージャに対するEXECUTE権限を持つ必要があります。

関数(プロシージャではなく)の呼び出しには、代わりにSELECTを使用します。

トランザクションブロック内でCALLが実行される場合、呼び出されたプロシージャはトランザクション制御文を実行できません。 トランザクション制御文は、CALLが自身のトランザクション内で実行された場合のみ許可されます。

PL/pgSQLではCALLコマンド内の出力パラメータの扱いが異なります。 43.6.3を参照してください。

CALL do_db_maintenance();

互換性

CALLは、出力パラメータの扱いを除いて標準SQLに準拠しています。 ユーザは出力パラメータの値を受け取る変数を書くべきだと標準は述べています。

関連項目

CREATE PROCEDURE