假设我已经存储了函数 foobar:
create or replace function foobar(
out p_foo varchar,
out p_bar varchar
)
returns record as $func$
begin
p_foo := 'foo';
p_bar := 'bar';
end;
$func$ language plpgsql;
从 ecpg 程序调用此函数的惯用方式是什么?到目前为止我发现的最好的是
EXEC SQL SELECT (foobar()).p_foo, (foobar()).p_bar into :foo,:bar;
或者
EXEC SQL SELECT (y).p_foo, (y).p_bar into :foo,:bar from (select foobar() y) x;
但这似乎很笨拙。