如何将镶木地板文件从Azure Blob存储复制到Snowflake表中



为了将镶木地板文件从Azure Blob存储复制到Snowflake表中,我创建了一个存储过程,但我不知道如何将源数据中的时间戳转换为日期。

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;
$$;

这是错误消息;第77行位置4处类型为"STATEMENT_ERROR"的未捕获异常:未能强制转换变量值";2022-08-17 00:00:00.000";迄今

你知道解决这个问题的办法吗?任何帮助都会得到通知。非常感谢。

如果需要,可以将时间戳转换为日期,如下所示:

select '2022-08-17 00:00:00.000'::date;

给我:

2022-08-17

在您的情况下,我不确定哪一列会出现错误,但如果我选择一个看起来像时间戳的列:

$1:LOAD_DATE

你可以做:

$1:LOAD_DATE::date

最新更新