Nee*_*asu 1 postgresql plpgsql
下面的代码正在给出错误,w_add_ax_extra(1, 'k', 'v')之前w_add_ax_extra(some_id, kv.k, kv.v)我将其更改k, v为重现相同的错误
declare
kv record;
begin
-- Lines skipped
for kv in select * from (select (each(extras)).*) as f(k,v) loop
raise notice 'key=%,value=%',kv.k,kv.v;
w_add_ax_extra(1, 'k', 'v');
end loop;
-- Lines Skipped
end
Run Code Online (Sandbox Code Playgroud)
我收到语法错误但无法理解我错过了什么
ERROR: syntax error at or near "w_add_ax_extra"
LINE 1: w_add_ax_extra(1, 'k', 'v')
Run Code Online (Sandbox Code Playgroud)
但是如果我这样做的dummy = w_add_ax_extra(1, 'k', 'v')话.是的,这个函数返回一个整数.但我不需要在这里存储它.是否必须保留返回值?
从精细手册:
39.5.2.执行没有结果的命令
[...]
有时,评估表达式或SELECT查询但丢弃结果很有用,例如在调用具有副作用但没有有用结果值的函数时.要在PL/pgSQL中执行此操作,请使用PERFORM语句:
Run Code Online (Sandbox Code Playgroud)PERFORM query;
强调我的.你不是通过说出f();你需要的东西来调用这个函数,perform f();或者select f() into ...;:
for kv in select * from (select (each(extras)).*) as f(k,v) loop
raise notice 'key=%,value=%',kv.k,kv.v;
perform w_add_ax_extra(1, 'k', 'v');
end loop;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4392 次 |
| 最近记录: |