[pgsql-jp: 31303] Re: PL_pgSQL関数の正しい利用方法について

ISHIDA Akio iakio @ pjam.jpweb.net
2003年 10月 25日 (土) 00:40:52 JST


こんにちは。石田@苫小牧市です。

aoyagi wrote:

> 初めて投稿させていただきます。青柳と申します。
> PL/pgSQL言語で複合型・複数行を返す関数が使用できる
> 旨の投稿をMLのアーカイブ発見し、早速利用しようとしましたが
> psqlから呼び出すとエラーが発生致しました。
(中略)
> [以下関数の呼び出しとエラーメッセージ]
> 
> select testfunc(26);
> 
> WARNING:  Error occurred while executing PL/pgSQL function testfunc
> WARNING:  line 6 at return next
> 
> ERROR:  Set-valued function called in context that cannot accept a set

SELECT * FROM testfunc(26) AS (id integer, name text, age integer);

と呼び出せば OK です。あるいは、

CREATE OR REPLACE FUNCTION testfunc(INTEGER) RETURNS SETOF test AS '

と宣言すれば、

SELECT * FROM testfunc(26);

と呼び出せます。

> 
> #なお参考に致しましたのは石井様、羽生様の以下の投稿です。
> #
> #[pgsql-jp: 28115] Re: PostgreSQL7.3について疑問
> #[pgsql-jp: 28123] PL/pgSQLで行を返すサンプル(7.3にて)
> #
> #また、本家の以下のサイトも参照しました
> #http://techdocs.postgresql.org/guides/SetReturningFunctions
> #
> #利用環境は
> #OS  Redhat Linux 8.0
> #PostgreSQL Version 7.3.4
> #です。
> 
> 青柳大介

--
ISHIDA Akio<iakio @ pjam.jpweb.net>





pgsql-jp メーリングリストの案内