我正在尝试使用RECORD数据类型返回多个记录,有没有一种方法可以追加到RECORD并在每次迭代中向此RECORD添加/附加新值。
也就是说,我想附加到,rec
以便rec
在循环结束时成为一组行,我可以在函数末尾返回。目前,我正在这样做-
SELECT temp_table.col1, temp_table.col2, temp_table.col3
INTO rec
FROM temp_table
WHERE temp_table.col3 = false;
我的完整代码在这里:
CREATE OR REPLACE FUNCTION validation()
RETURNS RECORD AS $$
DECLARE
rec RECORD;
temp_row RECORD;
BEGIN
CREATE TEMPORARY TABLE temp_table (col1 TEXT, col2 INTEGER, col3 BOOLEAN) ON COMMIT DROP;
FOR temp_row IN SELECT * FROM staging.validation
LOOP
RAISE NOTICE 'sql: %', temp_row.sql;
EXECUTE format('INSERT INTO temp_table %s', temp_row.sql);
IF (SELECT DISTINCT temp_table.col3 FROM temp_table WHERE temp_table.col3 = false)=false THEN
RAISE NOTICE 'there is a false value';
SELECT temp_table.col1, temp_table.col2, temp_table.col3
INTO rec
FROM temp_table
WHERE temp_table.col3 = false;
END IF;
END LOOP;
RETURN rec;
END; $$
LANGUAGE plpgsql;
电流输出后 SELECT validation();
validation
(crea_ddf,8095,f)
期望的输出
validation
(crea_ddf,8095,f)
(some_source_system,some_count,f)
(some_other_source_system,some_count,f)
(.....)
@EvanCarroll嗨,Evan,这是我的问题,我也张贴在那儿……以防万一有人在这里错过。
—
hky404
我不确定您要做什么,您能再解释一下吗?
—
埃文·卡罗尔
@ hky404:请不要交叉发布;只会造成重复的努力。
—
马丁·彼得斯