首页 > 解决方案 > 雪花中无法识别数值“abc_0011O00001y31VpQAI”

问题描述

(代表雪花客户打开以下内容......)


当我尝试插入表格时,它抛出了以下错误:

无法识别数值“abc_0011O00001y31VpQAI”

检查表 DDL,发现只有 3 列定义为 NUMBER,其余为 VARCHAR。

我检查了 SELECT 查询,并没有在那些 NUMBER 数据类型列中找到任何字符串值。还尝试在所有 Varchar 列中搜索值 'abc_0011O00001y31VpQAI' ,我没有找到任何

我知道一件事 Snowflake 并不总是显示正确的错误。我在这里错过了什么吗?有什么办法可以解决吗?

两者都是COL4_MRR_COL5_QUANTITYNUMBER

    INSERT INTO TABLE
    (COL1_DATE, COL2_CD, COL3_CUST_NAME, COL3_LOC_NAME,COL4_MRR,COL5_QUANTITY)

    SELECT 
     '2019-10-03' AS COL1_DATE ,
       'AE' AS COL2_CD
       ,CUSTOMER_NAME AS COL3_CUST_NAME
       ,LOCATION_NAME AS COL3_LOC_NAME
       ,MRR_BILLED as COL4_MRR
       ,QTY_BILLED as COL5_QUANTITY
    FROM SCHEMA.V_TABLEA
    union all 
            SELECT 
     '2019-10-03' AS COL1_DATE ,
       'BE' AS COL2_CD
       ,CUSTOMER_NAME AS COL3_CUST_NAME
       ,LOCATION_NAME AS COL3_LOC_NAME
       ,NULL as COL4_MRR
       ,QTY_BILLED as COL5_QUANTITY
    FROM SCHEMA.V_TABLEB

我创建了一个与原始 TABLE 相同的 table_D 并尝试插入其中,它工作正常。然后从 table_D 插入原始表,它再次工作。

从原始 TABLE 中删除这些行并重新运行作业,它工作正常。

数据没有问题,因为只有数字,我什至也尝试TRY_TO_NUMBER过。它插入数据而不对代码进行任何更改。

.............

客户目前正在等待第二天的运行以重新测试,以确定这是错误还是他们的数据有问题。与此同时,我们有兴趣看看是否有其他人遇到过类似的挑战并提出可行的建议。谢谢你。

标签: snowflake-cloud-data-platform

解决方案


该错误通常意味着您正在尝试将非数字数据(如“abc_0011O00001y31VpQAI”)插入数字列。似乎客户在测试中所做的一切都是正确的,而 TRY_TO_NUMBER() 是验证数字数据的好方法。

SELECT 查询是否单独运行良好?如果是这样,那么我会检查列的数据类型是否可能存在潜在的不匹配,并确保它们的顺序正确。

我还将检查文件中是否跳过了标题(这可能是“abc_0011O00001y31VpQAI”的来源,因为客户没有在数据中看到它)。


推荐阅读