0

我最近开始使用雪花并一直被困在这个问题上:

我想将一个名为 AB_USER 的表克隆到 AB_USER_(current_date)。我编写了以下代码来完成此操作:

CREATE or replace PROCEDURE backup_proc()
  RETURNS VARCHAR
  LANGUAGE javascript
  AS
  $$
  var tab_name = `AB_USER_BCK_2020_`+ current_date();
  stat = `create or replace table staging.` + tab_name + ` clone staging.AB_USER`;
  var rs = snowflake.execute( { sqlText: stat} );
  return 'Done.';
  $$;

问题是我找不到合适的函数来获取当前日期。Snowflake 提供了一个 JS 环境,但我不知道使用哪个函数来获取当前日期。

我对雪花很陌生,所以对此的任何帮助将不胜感激。

谢谢。

4

1 回答 1

1

CURRENT_DATE 是一条 SQL 命令,因此您需要将其作为 SQL 语句调用,并使用 snowflake.execute。

如我所见,您想从当前日期获取月份和日期的值,因此您可以使用以下过程:

CREATE or replace PROCEDURE backup_proc()
RETURNS VARCHAR
LANGUAGE javascript
AS
$$
var curdate = snowflake.execute( { sqlText: "SELECT TO_CHAR(CURRENT_DATE,'MMDD') as curdate"}  );
curdate.next();
var tab_name = "AB_USER_BCK_2020_"+ curdate.getColumnValue('CURDATE');
var stat = "create or replace table staging." + tab_name + " clone staging.AB_USER";
var rs = snowflake.execute( { sqlText: stat} );
return "Done.";
$$
;
于 2020-02-11T17:27:48.037 回答