2008年12月9日火曜日

PostgreSQL -- PL/pgSQL を使うために

PL/pgSQL を使うために必要なことがありました。

インストールしただけだと、PL/pgSQLが使えないのでした。

そこで、このページ<PostgreSQL 編19 - ストアドファンクション、function、PL/pgSQL、トリガー>を参考にして…



1 俺の場合は、Windows xpでPostgreSQLを使っているので
   スタートメニューのすべてのプログラムにあるPostgreSQL 8.3 の
   「コマンド・プロンプト」ショートカットを実行します。

2 createlang -h 127.0.0.1 -d postgres -U postgres plpgsql
   と、入力して、エンターキーを押します。

3 パスワードを聞いてくるので、入力して、エンターキーを押します。

「'postgres'へのpsql」の画面から
select * from pg_language
を実行すると、登録されているLANGUAGEを確認することができます。


これでようやく、↓みたいな文を書くことが出来ました。

PostgreSQL 8.3.1文書 38.6. 制御構造 例 38-1. UPDATE/INSERTの例外から抜粋
CREATE OR REPLACE FUNCTION getAllFoo() RETURNS SETOF foo AS
$BODY$
DECLARE
r foo%rowtype;
BEGIN
FOR r IN SELECT * FROM foo
WHERE fooid > 0
LOOP
-- can do some processing here
RETURN NEXT r; -- return current row of SELECT
END LOOP;
RETURN;
END
$BODY$
LANGUAGE 'plpgsql' ;

SELECT * FROM getallfoo();

0 件のコメント: