You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake中VARIANT字段C29转数值时‘dat’识别失败异常

问题:Snowflake中VARIANT字段转数值时出现"dat"未识别错误

我有一张基础表EXTRACT_TABLE,用来存储通过COPY INTO加载的多表数据,通过TABLE_NAME字段区分不同表的数据。加载时用OBJECT_CONSTRUCT("C1",$1,"C2",$2.....C300,$300)将CSV文件转换为JSON格式存入表中。后续会把数据拆分到各个扁平化表,并进行列的类型转换。

最近多个表的SQL突然失败,仅在将C29字段转换为数值/时间戳时,出现「‘dat’未识别」的错误。

奇怪的现象

  1. 查询原始值仅返回有效值:
select DISTINCT VARIANT_COL:C29
FROM EXRACT_TABLE WHERE TABLE_NAME='TABLEA'
-- 结果:所有值都是有效的数值
  1. 直接转换数值时失败:
select DISTINCT VARIANT_COL:C29::number
FROM EXRACT_TABLE WHERE TABLE_NAME='TABLEA'
-- 报错:Numeric value 'dat' is not recognized

测试验证结果

  • 过滤掉'dat'后转换正常:
select DISTINCT VARIANT_COL:C29::number
FROM EXRACT_TABLE WHERE TABLE_NAME='TABLEA'
AND VARIANT_COL:C29<>'dat'
-- 执行成功
  • 筛选'dat'时无结果但执行正常:
select DISTINCT VARIANT_COL:C29::number
FROM EXRACT_TABLE WHERE TABLE_NAME='TABLEA'
AND VARIANT_COL:C29='dat'
-- 执行成功,但无返回记录
  • 先去重再转换正常:
select TO_NUMBER(COL1) FROM (
select DISTINCT VARIANT_COL:C29 as col1
FROM EXRACT_TABLE WHERE TABLE_NAME='TABLEA'
)
-- 执行成功

所有出现失败的表都存在C29字段的类似问题,但该字段的去重值均为有效值。有没有人遇到过类似的「dat」相关问题?

内容的提问来源于stack exchange,提问作者Ankit Srivastava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 10:17:21