[pgsql-jp: 32965] Re: PL/pgSQL で ROWTYPE の引数に値を渡す方法について

Jun Kitamura kitamura @ zoozee.jp
2004年 5月 18日 (火) 10:57:25 JST


北村です。

> ROWTYPEの引数を受けるファンクションを作成しましたが、
> 値の入れ方が判らず先に進めなくなってしまいました。
> 
> ちなみに以下のようなことをしてみました。
> CREATE OR REPLACE FUNCTION func_name( table_name ) RETURNS BOOLEAN AS'
>     ・・・
> 
> SELECT * FROM func_name( ( SELECT * FROM table_name WHERE table_name_pk = 1 )
> ) ;
> 
> この場合は次のようなエラーがでました。
> ERROR:  Subselect must have only one field

SELECT func_name(t1)
 FROM table_name as t1
  WHERE table_name_pk = 1;
で出来ませんか?
テーブルを別名 t1 にしていますが、任意です(と思う)。

正確には、
SELECT func_name(t1.*)
 FROM table_name as t1
  WHERE t1.table_name_pk = 1;
なのかな?良くわかりませんが、テーブルを型として関数に渡す方
法は、上記のような感じです。色々試してみてください。

でわ。




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