我试图循环遍历几个字段并在它们上运行一个函数:
FOR field IN ARRAY['f1','f2'] LOOP
execute pg_temp.converFieldToLower(newTableNameRaw,field)
END LOOP;
这是我正在尝试使用的功能:
CREATE OR REPLACE FUNCTION pg_temp.converFieldToLower(t varchar, f varchar) RETURNS void AS $$
#variable_conflict use_variable
BEGIN
EXECUTE concat_ws (' ', 'UPDATE',t,'SET',f,'= LOWER(',f,')');
END;
$$ LANGUAGE plpgsql;
看起来这不是声明数组的正确方法,我做错了什么?
ERROR: syntax error at or near "ARRAY"
LINE 49: FOR field IN ARRAY['f1','f2'] LOOP
The FOREACH loop https://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#plpgsql-foreach-array专门设计用于迭代数组值的元素,例如:
FOREACH field IN ARRAY ARRAY['f1','f2'] LOOP
execute pg_temp.converFieldToLower(newTableNameRaw,field) into res;
END LOOP;
该功能是在 Postgres 9.1 中引入的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)