Redshift中的存储过程使用字符串替换和unload



我想在以下几行中实现一些东西:

create or replace procedure my_sp_name(p_date date) as
$$
begin
unload ('
select *
from my_table
where my_date = ''DATE_GOES_HERE''
')
to 's3://my-bucket/some_key/DATE_GOES_HERE/some_file'
iam_role 'my_iam_role'
allowoverwrite csv parallel off;
end ;
$$
language plpgsql;

我一直在尝试不同的事情,然而,似乎找不到什么是正确的方法来做在卸载的两个部分的字符串替换。正确的做法是什么?

您需要执行" SQL语句";在程序中。参见:https://docs.aws.amazon.com/redshift/latest/dg/c_PLpgSQL-statements.html下的"动态sql";部分。