gpt4 book ai didi

postgresql - 从 PostgreSQL 函数返回的值的名称

转载 作者:行者123 更新时间:2023-11-29 11:59:44 25 4
gpt4 key购买 nike

我正在编写一些第一次与 PostgreSQL 服务器通信的代码(我的经验是使用 SQL Server),我需要帮助来解决问题。

我一直试图避免在代码中使用“SELECT * ...”,但在调用函数时我无法弄清楚替代方案是什么。 (不幸的是,我发现的所有示例都执行“SELECT * ...”)

这是我要调用的函数:

CREATE OR REPLACE FUNCTION aSchema.aFunction(var1 text, var2 accountidentifier, ...)
RETURNS int8
AS
$BODY$
DECLARE
retJobId BIGINT;
BEGIN
INSERT INTO aSchema.aTable (var1, var2, ...)
VALUES (var1, var2, ...)
RETURNING jobId INTO retJobId;

PERFORM aSchema.anotherFunction(retJobId, ...);

RETURN retJobId;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;

我尝试了 SELECT retJobId FROM aSchema.aFunction(...),但我得到了错误:列“retjobid”不存在。用“*”替换“retJobId”是可行的,但是,就像我说的,我想避免这样做。

最佳答案

您可以选择:

select aschema.afunction() as my_name;               -- like in IMSoP's answer
select my_name from aschema.afunction() as my_name; -- with alias
select afunction from aschema.afunction(); -- with function name

如果将 aschema 添加到搜索路径,则可以省略架构标识符:

set search_path to public, aschema;
select afunction() as my_name;
select my_name from afunction() as my_name;
select afunction from afunction();

关于postgresql - 从 PostgreSQL 函数返回的值的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30854348/

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