在 REDSHIFT 中的 ALTER 语句中连接字符串(语法错误)
Posted
技术标签:
【中文标题】在 REDSHIFT 中的 ALTER 语句中连接字符串(语法错误)【英文标题】:Concatenate string in ALTER statement in REDSHIFT (syntax error) 【发布时间】:2019-12-27 11:22:12 【问题描述】:我想在 redshift 中更改一个外部表。如果执行这个查询:
alter table "name_table"
set location 'a string' ||
TO_CHAR((getdate()-1)::date, 'YYYYMMDD') || '/';
给我一个语法错误:
SQL 错误 [500310] [42601]:Amazon 无效操作:“||”处或附近的语法错误 位置:135;
也许我必须使用动态 SQL,但我不知道该怎么做。有人可以帮我吗?
编辑: 我尝试使用更改外部表的过程,这不会给我语法错误,但会返回如下错误:
您不能使用函数或过程更改外部表。
【问题讨论】:
【参考方案1】:你想要update
吗?
update "name_table"
set location = 'a string' || TO_CHAR((getdate()-1)::date, 'YYYYMMDD') || '/';
【讨论】:
不,我想在这里的第二个示例中更改外部表 docs.aws.amazon.com/redshift/latest/dg/…【参考方案2】:我不认为位置可以是动态的。尽管您在 SQL 中发出此语句,但您不能使用标准运算符来构建 S3 路径。这与旧的 COPY TO 语句中的限制相同(目标文件不能是动态的)。
【讨论】:
以上是关于在 REDSHIFT 中的 ALTER 语句中连接字符串(语法错误)的主要内容,如果未能解决你的问题,请参考以下文章
ALTER SCHEMA NAME 是不是会影响对 Redshift 中架构的权限授予
如何使用 Psycopg2 在 Redshift Spectrum 中添加分区 -
Redshift Spectrum 'alter table add partition' 安全性