【发布时间】:2019-10-17 13:26:39
【问题描述】:
是否可以使用未绑定的游标来完全编辑和替换表格中的一行?
我正在使用未绑定游标,因为表是通过参数动态指定的,但我不能使用“UPDATE table SET column = value WHERE”语法,因为列未指定。
CREATE OR REPLACE FUNCTION trim_table(in_table TEXT) AS $$
DECLARE
ref REFCURSOR;
current_row RECORD;
BEGIN
OPEN ref FOR EXECUTE 'SELECT * FROM '|| quote_ident(in_table);
LOOP
FETCH ref INTO current_row;
EXIT WHEN NOT FOUND;
current_row = my_row_function(current_row);
/*How can I replace my row here?*/
END LOOP;
CLOSE ref;
END
$$ LANGUAGE plpgsql;
我找到的所有示例和答案仅显示如何更新单个字段而不是完整记录。
【问题讨论】:
-
您需要在“my_row_function”中做什么?
-
具体来说,删除文本字段中的每个空格
-
当您说修剪掉:文本字段中间的空格? (我之前无法连接到答案:抱歉;))我有一个想法可以在没有任何光标的情况下解决您的问题,如果您想要的话,我认为会更快。
-
不,我只想在字符串的开头或结尾修剪掉输入错误的空格
标签: postgresql sql-update database-cursor