スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PL/pgSQLで可変長引数

PostgreSQL8.4から可変長引数が使えるようになりました。
簡単なサンプルとしてintの引数をすべて足す関数を書いてみます。
引数のデフォルト指定は、引数がまったく与えられなかった時に対応しています。
この指定が無いと引数無しで呼び出してしまうと、エラーになってしまいます。
また、このコードは配列をループで扱うための、サンプルにもなっています。


CREATE OR REPLACE FUNCTION add_all(p_params VARIADIC int[] DEFAULT '{0}') RETURNS int AS $$
DECLARE
w_result int := 0;
BEGIN
FOR i IN 1..array_length(p_params, 1) LOOP
w_result := w_result + p_params[i];
END LOOP;
RETURN w_result;
END;
$$ LANGUAGE plpgsql;


追記 2009/09/28 07:42
改訂版を作成しました。PL/pgSQLで引数の総和と平均を求める
スポンサーサイト

Tag : PL/pgSQL

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。