gpt4 book ai didi

postgresql - 使用存储过程 PostgreSQL 11.1 从表中检索数据

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

我的表格有两列 colacolb

我想使用存储过程从表中选择列。

注意:由于返回类型,我不想使用函数。

尝试:

CREATE OR REPLACE PROCEDURE public.sptest()
LANGUAGE sql

AS $BODY$
select cola from test;
$BODY$;

调用过程:

call sptest()

输出:

数据输出中没有任何内容。

消息窗口显示:

CALL

Query returned successfully in 147 msec.

最佳答案

您需要将 refcursor 定义为 inout 参数才能执行此操作:

CREATE OR REPLACE PROCEDURE public.sptest(result_data inout refcursor)
LANGUAGE plpgsql
AS $BODY$
begin
open result_data for select cola from test;
end;
$BODY$;

然后这样调用它:

call sptest('data');

传递的参数是返回的refcursor的名称。

是否显示结果取决于您使用的 SQL 客户端。

psql 中你需要做这样的事情:

begin; -- not required if you turned off autocommit
call sptest('data');
fetch all in "data";
commit;

一些 SQL 客户端会自动为您完成。

关于postgresql - 使用存储过程 PostgreSQL 11.1 从表中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54088577/

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