最初に、DBでplpgsqlが使用できるか確認する。
DBにログインして以下のsqlを実行する。
select * from pg_language;
このsqlでストアドプロシージャで使用できる言語の一覧が取得できる。
plpgsqlがない場合は、以下のコマンドを実行してインストールを行う。コマンドはpostgresユーザ等の管理者ユーザで行う。
createlang -d [DB名] plpgsql
コマンドの成功時は何も表示されない。
尚、plpgsqlが使用できない状態でplpgsql関数を定義しようとすると以下のエラーが発生する。
ERROR: language "plpgsql" does not exist
以下はplpgsqlのサンプル。
引数で渡された2つの値を加算して返す。
CREATE FUNCTION add( integer, integer ) RETURNS integer AS '
-- "DECLARE"内で変数を定義する
DECLARE
-- 以下はinteger型の変数sumを定義する
sum integer;
-- "BEGIN"~"END"間で処理を記述する
BEGIN
-- sum変数に加算した結果を代入する)
sum := $1+$2;
-- RETURNで値を返す
RETURN sum;
END ;
' LANGUAGE 'plpgsql';
sum変数に加算した結果を代入する部分は以下の様にSELECT文で記述することもできる
SELECT INTO sum $1+$2;
以下は参考URL。
2010-07-26
最終更新:2010年07月26日 01:37