我想在红移中更改外部表。如果执行此查询:
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 语句中的限制相同(目标文件不能是动态的(。