[pgsql-jp: 31481] Re: Function関数の対象テーブル名を変数化
斎見 浩平
saimi_at_qs @ ybb.ne.jp
2003年 11月 16日 (日) 00:30:49 JST
サイミです。
> CREATE FUNCTION counter(date,text)
> RETURNS bigint
> AS '
> SELECT count(*) FROM $2
> WHERE date = $1
> 'LANGUAGE 'sql';
試してませんが、
CREATE FUNCTION counter(date, text) RETURNS bigint AS '
DECLARE
datetext text;
cnt bigint;
rec RECORD;
BEGIN
datetext := to_char(timestamp($1), ''YYYY-MM-DD'');
FOR rec IN EXEXUTE
''SELECT count(*) AS cnt FROM '' || quote_indent($2) ||
''WHERE date = '' || quote_literal(datetext)
LOOP
cnt := rec.cnt;
END LOOP;
RETURN cnt;
END;
' LANGUAGE 'plpgsql';
ではいかがでしょう。
--
斎見 浩平 <saimi_at_qs @ ybb.ne.jp>
pgsql-jp メーリングリストの案内