我正在编写一些首次与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(...)
但是知道了ERROR: column "retjobid" does not exist
。用“ *”代替“ 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();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句