问题描述
我想在雪花中创建一个表,并将日期附加到其名称的末尾。最好的方法是什么?
- 原始表=“ 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'.
解决方法
我建议使用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
我希望这可以帮助...丰富
p.s。如果这个(或另一个)答案对您有帮助,请花一点时间“接受”对您有帮助的答案 通过单击答案旁边的复选标记,将其从“灰色”切换为“填充”。