「キー」変数を引数として持つ関数があります。
キー値の範囲に対してこの関数を呼び出したいと思います。
私はこれを試しましたが、うまくいきませんでした...
BEGIN
for i IN 773..775 LOOP
test_count(i);
end LOOP;
end;
SQL エラー: エラー: "for" またはその近くで構文エラーが発生しました 行 2: for i IN 773..775 LOOP
「キー」変数を引数として持つ関数があります。
キー値の範囲に対してこの関数を呼び出したいと思います。
私はこれを試しましたが、うまくいきませんでした...
BEGIN
for i IN 773..775 LOOP
test_count(i);
end LOOP;
end;
SQL エラー: エラー: "for" またはその近くで構文エラーが発生しました 行 2: for i IN 773..775 LOOP
@Mihai は、関数または無名コード ブロックの外部で手続き型要素を実行できないことをDO
.
戻り値を処理せずにどこでも関数を呼び出すことはできないため、構文は依然として失敗します。可能な戻り値を破棄したい場合は、次PERFORM
のような関数で使用します (PostgreSQL 8.3 で動作します):
関数 foo() の作成または置換 戻り値 void LANGUAGE plpgsql AS $本文$ 始める 私は 773 .. 775 で ループ PERFORM test_count(i); エンドループ; 終わり; $BODY$;
PostgreSQL 8.3は、匿名のプロシージャ/関数を実行したり、プロシージャ/関数の外部で変数を作成したりすることはできません。
DO
構成は、バージョンの時点で匿名プロシージャのサポートとして追加されました9.0
。
関数内でコードを実行する必要があります。FOR
受信しているエラーメッセージは、グローバルコンテキストでは予期しないキーワードであると述べているためです。