在 Snowflake 脚本存储过程中向导出 .csv 文件名添加时间戳
Add a timestamp to an export .csv file name in Snowflake Scripting Stored Procedure
我正在使用 Snowflake Scripting 编写存储过程,我需要在其中将 Snowflake table 复制到 .csv 文件中,并在文件名中添加时间戳。此 table 将在过程的早期创建,并将使用变量名保存。我有两个问题:
(1) 如何在复制命令的 from 语句中使用 table 变量名?
(2) 如何保存带有今天日期戳的 .csv 文件名?
下面是我如何 运行 在 Snowflake SQL 中执行此复制命令,其中 my_table 是我要复制的 table 的名称,并且文件名是硬编码的,而不是变量。
copy into @my_stage/my_file_03072022.csv
from table($my_table)
file_format=(type=csv compression=none skip_header=1
field_optionally_enclosed_by= '"')
header = true
single = true
max_file_size = 4900000000
;
感谢您的帮助!
您是在问如何将日期格式化为 MMDDYYYY 格式,因此:
SELECT TO_CHAR(current_date,'mmddyyyy');
TO_CHAR(CURRENT_DATE,'MMDDYYYY')
03082022
或如何获取该值并在 Snowflake 脚本块中使用它,例如:
DECLARE
query STRING;
date_str STRING;
BEGIN
SELECT TO_CHAR(current_date,'mmddyyyy') INTO :date_str;
QUERY := 'copy into @my_stage/my_file_' || date_str || '.csv table($my_table)
file_format=(type=csv compression=none skip_header=1
field_optionally_enclosed_by= \'"\')
header = true
single = true
max_file_size = 4900000000;';
--EXECUTE IMMEDIATE :QUERY;
RETURN :QUERY;
END;
anonymous block
copy into @my_stage/my_file_03082022.csv table($my_table) file_format=(type=csv compression=none skip_header=1 field_optionally_enclosed_by= '"') header = true single = true max_file_size = 4900000000;
我正在使用 Snowflake Scripting 编写存储过程,我需要在其中将 Snowflake table 复制到 .csv 文件中,并在文件名中添加时间戳。此 table 将在过程的早期创建,并将使用变量名保存。我有两个问题:
(1) 如何在复制命令的 from 语句中使用 table 变量名?
(2) 如何保存带有今天日期戳的 .csv 文件名?
下面是我如何 运行 在 Snowflake SQL 中执行此复制命令,其中 my_table 是我要复制的 table 的名称,并且文件名是硬编码的,而不是变量。
copy into @my_stage/my_file_03072022.csv
from table($my_table)
file_format=(type=csv compression=none skip_header=1
field_optionally_enclosed_by= '"')
header = true
single = true
max_file_size = 4900000000
;
感谢您的帮助!
您是在问如何将日期格式化为 MMDDYYYY 格式,因此:
SELECT TO_CHAR(current_date,'mmddyyyy');
TO_CHAR(CURRENT_DATE,'MMDDYYYY') |
---|
03082022 |
或如何获取该值并在 Snowflake 脚本块中使用它,例如:
DECLARE
query STRING;
date_str STRING;
BEGIN
SELECT TO_CHAR(current_date,'mmddyyyy') INTO :date_str;
QUERY := 'copy into @my_stage/my_file_' || date_str || '.csv table($my_table)
file_format=(type=csv compression=none skip_header=1
field_optionally_enclosed_by= \'"\')
header = true
single = true
max_file_size = 4900000000;';
--EXECUTE IMMEDIATE :QUERY;
RETURN :QUERY;
END;
anonymous block |
---|
copy into @my_stage/my_file_03082022.csv table($my_table) file_format=(type=csv compression=none skip_header=1 field_optionally_enclosed_by= '"') header = true single = true max_file_size = 4900000000; |