インストールしただけだと、PL/pgSQLが使えないのでした。
そこで、このページ<PostgreSQL 編19 - ストアドファンクション、function、PL/pgSQL、トリガー>を参考にして…
1 俺の場合は、Windows xpでPostgreSQLを使っているので
スタートメニューのすべてのプログラムにあるPostgreSQL 8.3 の
スタートメニューのすべてのプログラムにあるPostgreSQL 8.3 の
「コマンド・プロンプト」ショートカットを実行します。
2 createlang -h 127.0.0.1 -d postgres -U postgres plpgsql
と、入力して、エンターキーを押します。
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 件のコメント:
コメントを投稿