Snowflake - 创建名称中带有日期变量的表
Posted
技术标签:
【中文标题】Snowflake - 创建名称中带有日期变量的表【英文标题】:Snowflake - CREATE table with a date variable in its name 【发布时间】:2020-08-12 18:27:03 【问题描述】:我想在雪花中创建一个表,将日期附加到其名称的末尾。最好的方法是什么?
原始表 = "DB"."SCHEMA"."CLONEME" 所需的新表 = "DB"."SCHEMA"."CLONEME_20200812BKP"尝试设置日期变量,但没有成功。
第一次尝试:
set var1= (SELECT TO_CHAR(DATE_TRUNC('DAY',CONVERT_TIMEZONE('UTC', CURRENT_DATE())),'YYYYMMDD'));
set var2 = concat('DB.SCHEMA.CLONEME_',$var1);
create table $var2 clone DB.SCHEMA.CLONEME;
-- and got the following error:
-- SQL compilation error: syntax error line 1 at position 13 unexpected '$var2'.
【问题讨论】:
【参考方案1】:我建议使用 IDENTIFIER 函数:
https://docs.snowflake.com/en/sql-reference/identifier-literal.html
例子:
CREATE OR REPLACE TABLE CLONEME(
src_string VARCHAR(20));
INSERT INTO CLONEME
VALUES('JKNHJYGHTFGRTYGHJ'), ('ABC123'), (null), ('0123456789');
set var1= (SELECT TO_CHAR(DATE_TRUNC('DAY',CONVERT_TIMEZONE('UTC', CURRENT_DATE())),'YYYYMMDD'));
set var2 = concat('CLONEME_',$var1);
SELECT getvariable('VAR1'), getvariable('VAR2');
--20200812 CLONEME_20200812
create table identifier($var2) clone CLONEME;
--Table CLONEME_20200812 successfully created
我希望这会有所帮助...丰富
附言如果这个(或另一个)答案对您有帮助,请花点时间“接受”有帮助的答案 通过单击答案旁边的复选标记将其从“灰色”切换为“已填充”。
【讨论】:
? 完美。惊人的。谢谢!以上是关于Snowflake - 创建名称中带有日期变量的表的主要内容,如果未能解决你的问题,请参考以下文章