【发布时间】:2021-11-28 07:31:05
【问题描述】:
我在 AWS redshift 中创建了以下程序。 在 query2(在 ????)中,我想根据字段输入变量中提供的值从 rec 中选择列。 例如如果 field = 'Fname' 那么在 query2 中它应该插入 rec.Fname。
请告诉我如何在打开的游标中从 RECORD 中动态选择列名。
CREATE OR REPLACE PROCEDURE test3(source_table varchar(100), target_table varchar(100), field varchar(100) )
LANGUAGE plpgsql
AS $$
declare
query1 text;
query2 text;
rec RECORD;
begin
query1 := 'SELECT id, ' || field ||', load_date, end_date FROM ' || source_table || ' ORDER BY id, load_date';
FOR rec IN execute query1
loop
query2 := 'insert into '|| target_table ||' values ('||quote_literal(rec.id)||', '||quote_literal(field)||','||**????**||','||quote_literal(rec.load_date)||')';
execute query2;
END LOOP;
RETURN;
END;
$$
;
【问题讨论】:
标签: amazon-web-services stored-procedures amazon-redshift dynamic-sql