2012年2月 9日

[pgsql-jp: 41047]PL/pgSQL中のループ内での変数更新

いつもお世話になっております。

以下のPL/pgSQLを実行した場合の動作について
質問があります。

CREATE OR REPLACE FUNCTION test() RETURNS INTEGER AS $$
DECLARE
iCnt INTEGER;

BEGIN
FOR iCnt IN REVERSE 3 .. 1 LOOP
RAISE NOTICE '%', iCnt;
iCnt := 0;
END LOOP;

RETURN 0;
END;
$$ LANGUAGE 'plpgsql';

このファンクションを実行した場合、
3だけが表示され終了することを想定していましたが、
3,2,1と表示され終了しました。
これは正常な動作なのでしょうか?

CentOS、DBのバージョンは8.3.5です。
ちなみに8.2.4では3だけが表示され終了しました。

よろしくお願いします。


投稿者 xml-rpc : 2012年2月 9日 15:46
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/108548
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。