snowflake-cloud-data-platform - 雪花中无法识别数值“abc_0011O00001y31VpQAI”
问题描述
(代表雪花客户打开以下内容......)
当我尝试插入表格时,它抛出了以下错误:
无法识别数值“abc_0011O00001y31VpQAI”
检查表 DDL,发现只有 3 列定义为 NUMBER,其余为 VARCHAR。
我检查了 SELECT 查询,并没有在那些 NUMBER 数据类型列中找到任何字符串值。还尝试在所有 Varchar 列中搜索值 'abc_0011O00001y31VpQAI' ,我没有找到任何
我知道一件事 Snowflake 并不总是显示正确的错误。我在这里错过了什么吗?有什么办法可以解决吗?
两者都是COL4_MRR
_COL5_QUANTITY
NUMBER
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
过。它插入数据而不对代码进行任何更改。
.............
客户目前正在等待第二天的运行以重新测试,以确定这是错误还是他们的数据有问题。与此同时,我们有兴趣看看是否有其他人遇到过类似的挑战并提出可行的建议。谢谢你。
解决方案
该错误通常意味着您正在尝试将非数字数据(如“abc_0011O00001y31VpQAI”)插入数字列。似乎客户在测试中所做的一切都是正确的,而 TRY_TO_NUMBER() 是验证数字数据的好方法。
SELECT 查询是否单独运行良好?如果是这样,那么我会检查列的数据类型是否可能存在潜在的不匹配,并确保它们的顺序正确。
我还将检查文件中是否跳过了标题(这可能是“abc_0011O00001y31VpQAI”的来源,因为客户没有在数据中看到它)。
推荐阅读
- amazon-s3 - 如何使用某些标头为 PutObjectCommand 的 url 签名?
- javascript - run next dev -H [Local ID] 在 Node.js v16 中不起作用
- azure-appservice - Azure 应用服务:在 docker 容器中运行命令
- laravel - Laravel 关系不适用于 belongsTo
- node.js - 如何在 Windows 上使用 nvm 运行 npm 命令?
- python - 在 Kedro 管道中添加参数
- asp.net-mvc - MVC RedirectResult 到带有模型的新页面
- python - Selenium - 通过下拉菜单迭代 - 让页面加载
- javascript - React Native:firestore/firebase 期望 collection() 的第一个参数是 CollectionReference ......如何?
- javascript - git克隆到我的项目后如何访问一个包?