在plpgsql中,我想从二维数组中逐个获取数组内容.
DECLARE
m varchar[];
arr varchar[][] := array[['key1','val1'],['key2','val2']];
BEGIN
for m in select arr
LOOP
raise NOTICE '%',m;
END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)
但上面的代码返回:
{{key1,val1},{key2,val2}}
Run Code Online (Sandbox Code Playgroud)
在一条线上.我希望能够循环并调用另一个函数,该函数采用如下参数:
another_func(key1,val1)
Run Code Online (Sandbox Code Playgroud) 在研究从另一个过程调用一个过程与在 Postgres 13 中重复代码对性能的影响时,我发现您可以使用 或 来调用其他CALL过程PERFORM。
我用谷歌搜索差异,但我发现的唯一相似的事情是
哪些地址PERFORMvs.哪些地址EXECUTE不PERFORMvs. CALL.
有谁知道有什么区别?我应该使用哪一个(当从 PL/pgSQL 过程调用过程时)?