【发布时间】:2018-03-27 13:51:59
【问题描述】:
我正在尝试在 Postgres 中创建一个函数来查找具有文本数据类型的架构(架构是用户可以传入的文本变量)中的所有列,循环遍历每个返回的记录,然后更新文本列有具体的数据。
这是我的函数示例代码:
CREATE OR REPLACE FUNCTION update_text_columns_newline(target_schema text)
RETURNS void
AS $$
DECLARE
r information_schema.columns%ROWTYPE;
sql text := ' ';
BEGIN
FOR r IN
select table_schema, table_name, column_name
from information_schema.columns
where upper(data_type) = 'TEXT'
and UPPER(table_schema) = target_schema
LOOP
_sql = _sql + ' UPDATE ' || r.table_schema || '.' || r.table_name || ' SET ' || r.column_name || ' = REPLACE(r.column_name, _new_line_character, CHR(10));';
END LOOP;
EXECUTE _sql;
END;
$$ LANGUAGE plpgsql;
循环似乎没有从查询中返回值,并且我的 _sql 语句始终为空。
【问题讨论】:
标签: sql postgresql