gpt4 book ai didi

postgresql - 从函数返回带有列定义的记录

转载 作者:行者123 更新时间:2023-11-29 13:02:34 24 4
gpt4 key购买 nike

我知道 Postgres 允许返回一个预定义的复合数据类型、一条记录和一个带有列定义的表。

但是我没有设法返回带有已定义列的简单记录,所以我总是使用表格,即使我知道这只会返回一行。

所以我的函数定义看起来像这样:

CREATE OR REPLACE FUNCTION name(p_param1 text, p_param2 json)
RETURNS TABLE(
col1 bigint,
col2 integer,
col3 integer
)

如果我尝试以失败的方式返回记录:

CREATE OR REPLACE FUNCTION name(p_param1 text, p_param2 json)
RETURNS RECORD(
col1 bigint,
col2 integer,
col3 integer
)

这在 Postgres 中是不可能的吗?我知道我可以只声明一个自定义复合数据类型,但我不想为每个返回记录的函数声明一个类型。

最佳答案

您正在寻找 OUT 参数:

CREATE OR REPLACE FUNCTION name(
p_param1 text
, p_param2 json
, OUT col1 bigint
, OUT col2 integer
, OUT col3 integer)
RETURNS record AS ...

区别:这种形式只返回一行,而 RETURNS TABLE 返回 0-n 行。
更多:

关于postgresql - 从函数返回带有列定义的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25016901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com