ストアドプロシージャ(ストアドファンクション)を作成するときはいったんファイルに作成して、コンソールで
% \i 'FILE_PATH'
とするのが吉。まず大枠として関数は以下のような形で作成する。OR REPLACEをつけているのは、関数を変更したときにいちいちDROP FUNCTIONをしなくてもいいようにするため。
CREATE OR REPLACE FUNCTION function_name ( arg_type,[arg_type],...) RETURNS [SETOF] return_type AS ' DECLARE declarations BEGIN statements END; ' LANGUAGE 'plpgsql';
複数行の結果を返したい場合はSETOFオプションをつけるとよい。またreturn_typeとしてはふつうの変数型の他に、テーブルorビューの行も扱える。従って、通常のSELECT文の様に結果を返したい場合はSETOFオプションをつけて、返り値型にテーブル名(ビュー名)を書いてやればよい。