我还没有看到任何涉及我所问问题的问题,所以咧嘴笑着说我的旅程在这里。
任务:在pgAdmin中,在Postgres中运行procedure(不是函数)。评估并将结果报告给屏幕上的用户。
根据我的情况,我有一个带有以下签名的过程:
CREATE OR REPLACE PROCEDURE sqls.transform_main(
INOUT returnval integer)
LANGUAGE 'plpgsql'
...
如何做到这一点?
对我有用的答案:
(<< [Edit: listen virtual;
添加到下面的代码中]
DO
$$
declare x integer;
declare y text;
BEGIN
listen virtual;
call sqls.transform_main(x);
y = 'Return value: ' || x;
perform pg_notify('virtual', y);
END
$$
[如果其他人能对此有所改善,我会非常高兴。在这一点上,我只是为感谢某件事而付出了太多的时间,这比我在任务上所允许的要多。
# CREATE OR REPLACE PROCEDURE test(
INOUT returnval integer)
LANGUAGE 'plpgsql' AS
$$
BEGIN
returnval := returnval;
END;
$$
;
CREATE PROCEDURE
# call test(1);
returnval
-----------
1
(1 row)