`RETURN TABLE(columns)`如何等同于使用一个或多个`OUT`参数,并将函数标记为返回`SETOF`记录?

用户3284469

PostgreSQL 文档说

还有另一种方法可以将 SQL 函数声明为返回一个集合,即使用语法RETURNS TABLE(columns). 这相当于使用一个或多个OUT参数加上将函数标记为返回SETOF记录(或SETOF单个输出参数的类型,视情况而定)。

你能解释一下如何RETURN TABLE(columns)等效于:

  • 使用一个或多个OUT参数,以及

  • 将函数标记为返回SETOF记录(或SETOF单个输出参数的类型,视情况而定)

谢谢。

克林

这些函数是等效的:

create type my_type as (id int, str text);

create or replace function function_returning_setof(n int)
returns setof my_type language sql as $$
    select i, i::text
    from generate_series(1, n) i;
$$;

create or replace function function_returning_table(n int)
returns table(id int, str text) language sql as $$
    select i, i::text
    from generate_series(1, n) i;
$$;

create or replace function function_with_out_params(in n int, out id int, out str text)
returns setof record language sql as $$
    select i, i::text
    from generate_series(1, n) i;
$$;

Db小提琴。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档