2011年4月18日

[pgsql-jp: 40739]トリガーファンクション?で実現可能でしょうか?

トリガーファンクション?というのでしょうか?

id sec col cat
-------------------
1 1 1c 1
2 2 2c 1
3 1 4c 11
4 2 8c 11

5 3 12c 11

上記のテーブルでcatが11の場合

イメージですが
merge_col := 1c, 2c, 3c
ということをしたい。

ためしに、

CREATE OR REPLACE FUNCTION merge_col()
RETURNS trigger AS
$BODY$
DECLARE
cnt int;
BEGIN
PERFORM COUNT(col) AS cnt FROM tableA WHERE cat = NEW.cat;

FOR i IN 1..cnt LOOP
SELECT col FROM tableA WHERE sec = i AND cat = NEW.cat;
NEW.merge_col := col;
RETURN NEW;
END LOOP;
NEW.merge_col := merge_col;
RETURN NEW;

END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION merge_col() OWNER TO yu2admin;

としてみましたが
「upper bound FOR of loop cannot be null」
というエラーが出てしまいます。

どなたかご指導お願いします。


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




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