2016-05-14 6 views
0

テーブルkoは、パラメータをcrtKAIVE関数に渡すために使用されます。 このテーブルは常に1行です。テーブル行の値を関数パラメータとして使用する方法

私は以下のコードを試みたが、KOはcrtkaiveにパラメータを渡すために使用できるように、この問題を解決する方法エラー

ERROR: function expression in FROM cannot refer to other relations of same query level 
LINE 15: select * from ko, crtkaive(ko.doktyyp) 

を得ましたか。 Postgres 9.1以降のバージョンが使用されています。

CREATE or replace FUNCTION public.crtKAIVE(
_doktyybid text default 'GVY' 
) 
RETURNS TABLE (
id integer 
) 
AS $f_crkaive$ 
select 1 
$f_crkaive$ LANGUAGE sql STABLE; 

create temp table ko (doktyyp text) on commit drop; 

insert into ko values ('G'); 

select * from ko, crtkaive(ko.doktyyp) 

答えて

0

Postgres 9.3で導入されたlateral joinを使用しています。以前のバージョンでは構文が正しくありません。

のPostgres 9.1では、あなたは

select doktyyp, crtkaive(doktyyp) from ko; 

または

select * from crtkaive((select doktyyp from ko)); 
試すことができます
関連する問題