在 REDSHIFT 中的 ALTER 语句中连接字符串(语法错误)



我想在红移中更改外部表。如果执行此查询:

alter table "name_table" 
set location 'a string' || 
TO_CHAR((getdate()-1)::date, 'YYYYMMDD') || '/';

给我一个语法错误:

SQL 错误 [

500310] [42601]:Amazon 无效操作:"||"处或附近的语法错误 位置: 135;

也许我必须使用动态SQL,但我不确定如何做到这一点。有人可以帮助我吗?

编辑: 我尝试使用一个过程来更改外部表,这不会给我语法错误,但返回如下错误:

不能使用函数或过程更改外部表。

你想要update吗?

update "name_table" 
set location = 'a string' || TO_CHAR((getdate()-1)::date, 'YYYYMMDD') || '/';

我不认为位置可以是动态的。尽管您在 SQL 中发出此语句,但不能使用标准运算符来构建 S3 路径。这与旧的 COPY TO 语句中的限制相同(目标文件不能是动态的(。

相关内容

  • 没有找到相关文章