![](/img/trans.png)
[英]How to dynamically create table in Snowflake getting schema from parquet file which stored in AWS
[英]How to copy parquet file from Azure Blob Storage into Snowflake table?
要将镶木地板文件从 Azure Blob 存储复制到雪花表中,我创建了一个存储过程,但我不知道如何将源数据中的时间戳转换为日期。
CREATE OR REPLACE PROCEDURE PROC_IMPORT_COPY_DATA(year varchar,month varchar,day varchar)
returns varchar
LANGUAGE sql
AS
$$
BEGIN
let delete_query varchar:= 'delete from PRD_RAW_DATA.PUBLIC.SAMPLE_DATA where load_date = substr(to_char(CURRENT_DATE()),1,4) || substr(to_char(CURRENT_DATE()),6,2) || substr(to_char(CURRENT_DATE()),9,2)';
execute immediate delete_query;
let uri varchar := concat(
'select
$1:COMPANY_CODE,
$1:STORE_CODE,
$1:JAN_CODE,
$1:PERIOD,
$1:QUANTITY,
$1:AMOUNT,
$1:GROSS_PROFIT,
$1:SELLING_PRICE,
$1:SALE_QUANTITY,
$1:SALE_AMOUNT,
$1:SALE_GROSS_PROFIT,
$1:SALE_PRICE,
$1:NUMBER_OF_DEALERS,
$1:NUMBER_OF_VISITORS,
$1:LOAD_DATE
FROM @SYNAPSE_STAGE_PRD/delta/sample_data'
,'/year='
, :year
,'/month='
, :month
,'/day='
, :day
);
let copy_query varchar := concat('copy into PRD_RAW_DATA.PUBLIC.SAMPLE_DATA from '
,'('
,uri
,'(file_format => my_parquet_format, pattern => \'.*.parquet\') t'
,') force=TRUE'
);
execute immediate copy_query;
return(copy_query);
END;
$$;
这是错误信息; 在 position 4 的第 77 行上未捕获类型“STATEMENT_ERROR”的异常:无法将变量值“2022-08-17 00:00:00.000”转换为 DATE
你知道解决这个问题的方法吗? 任何帮助都将不胜感激。 谢谢你。
如果需要,您可以将时间戳转换为日期,如下所示:
select '2022-08-17 00:00:00.000'::date;
给我:
2022-08-17
在您的情况下,我不确定哪个是给出该错误的列,但如果我会采用一个看起来像时间戳的列:
$1:LOAD_DATE
你可以这样做:
$1:LOAD_DATE::date
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.