[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 メーリングリストの案内