Snowflake外部表无法将变量值NULL转换为DATETIME/TIMESTAMP_NTZ类型 [英] Snowflake External Table failed to cast variant value NULL to DATETIME/TIMESTAMP_NTZ type

查看:26
本文介绍了Snowflake外部表无法将变量值NULL转换为DATETIME/TIMESTAMP_NTZ类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

创建了一个列类型为DATETIME(TIMESTAMP_NTZ类型)的外部表,外部后台在该列中有一个值为NULL的CSV文件。从外部表中进行选择就是给出 "无法将变量值"null"转换为timeamp_ntz"

CREATE OR REPLACE EXTERNAL TABLE ext_table_datetime (
   col1 datetime as (value:c1::datetime)
   )
    with location = 's3://bucket_name'
    file_format = file_format_1
    auto_refresh = true;
我还有如下定义的文件格式,它适用于外部表具有空值的其他列类型(varchar等),也适用于常规表中的DATETIME类型。因此,基本上不适用于DATETIME类型的外部表。

CREATE OR REPLACE FILE FORMAT file_format_1 type = 'CSV'
                              field_delimiter = ','
                              ESCAPE_UNENCLOSED_FIELD = NONE
                              SKIP_HEADER=1
                              NULL_IF = 'null';

对如何将空值加载/同步到外部表DATETIME类型有什么想法吗?

推荐答案

您是否尝试过在外部表定义中使用NULLIF函数:

CREATE OR REPLACE EXTERNAL TABLE ext_table_datetime (
   col1 datetime as (NULLIF(value:c1,'null')::datetime)
   )
    with location = 's3://bucket_name'
    file_format = file_format_1
    auto_refresh = true;
此外,由于这是Snowflake的预览功能,我建议您打开支持票证。格式化文件的NULL_IF参数可能会如您预期的那样为您处理此问题。

这篇关于Snowflake外部表无法将变量值NULL转换为DATETIME/TIMESTAMP_NTZ类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆