ように私は、ストアドプロシージャを作成していますタイプを渡すことによって、プロシージャ内でループを行う私は、各インフォタイプにループは、ストアドプロシージャの入力のPostgreSQL
を挿入できるように、これは
create type leketo as(id integer, name text);
私のタイプです機能を実行している私のタイプ
CREATE OR REPLACE FUNCTION getLeketo()
RETURNS SETOF leketo AS
$BODY$
declare
l leketo;
begin
l.id := 1;
l.name := 'One';
return next l;
l.id := 2;
l.name := 'Two';
return next l;
l.id := 3;
l.name := 'Three';
return next l;
l.id := 4;
l.name := 'Four';
return next l;
l.id := 5;
l.name := 'Five';
return next l;
end
$BODY$
LANGUAGE plpgsql VOLATILE;
に行を挿入
機能は私
にこれを返します。この手順でselect * from getLeketo()
1 One
2 Two
3 Three
4 Four
5 Five
私たちは、私はこれをしようとすると、私は次のようなメッセージ
DO $$
declare
l leketo;
begin
select * from getLeketo() into l;
PERFORM loopLeketo(l);
end$$;
ERRORを取得し、すべての行
CREATE OR REPLACE FUNCTION loopLeketo(pl leketo)
RETURNS void AS
$BODY$
declare
l leketo;
begin
for l in (select * from pl) loop
raise notice '----------------------------------------';
raise notice 'id=%, name=%', l.id, l.name;
end loop;
end
$BODY$
LANGUAGE plpgsql VOLATILE;
を通過します:関係は "PL"
存在しません