我通过几场试图循环和运行它们的函数在给定列表循环:通过值的PL/pgSQL的
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
你写*“fields”*,但是展示*常数值*。那么:常量,plpgsql参数或变量或表的字段?输入是一个实际的数组?你想放弃任何结果如展示或分配结果的目标?最好的解决方案取决于你的情况的细节。最好提供一个完整的(尽可能简单的)plpgsql函数,显示涉及的数据类型,函数参数等。 –
我使用常量文本值作为示范。 –