【问题标题】:Concatenate string in ALTER statement in REDSHIFT (syntax error)在 REDSHIFT 中的 ALTER 语句中连接字符串(语法错误)
【发布时间】: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,但我不知道该怎么做。有人可以帮我吗?

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

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

【问题讨论】:

    标签: sql amazon-redshift


    【解决方案1】:

    你想要update吗?

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-30
      • 2019-04-12
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      相关资源
      最近更新 更多