雪花数超出可表示范围

Posted

技术标签:

【中文标题】雪花数超出可表示范围【英文标题】:Snowflake Number out of representable range 【发布时间】:2020-10-05 13:27:10 【问题描述】:

我正在尝试在列数据类型 number(10,6) 中插入一个数字值,例如:-20833.33。雪花中有关于“超出可表示范围的数字”的错误。我试图在numeric data types 中找到为什么会发生这种情况的答案,但我找不到任何合理的解释。

这是案例的表示:

create table test (
   VALUE    number(10, 6)
);


INSERT test 
with TESTTABLE as (
    select '-20833.33' AS VALUE)
SELECT * FROM TESTTABLE

我收到以下错误: "数字超出可表示范围:类型 FIXEDSB8nullable,value -20833.33

有人知道为什么会发生这种情况并有一些参考资料可以解释这个错误吗?

【问题讨论】:

【参考方案1】:

您需要将精度提高到 NUMBER(11,6) 以便它可以存储小数点前 5 位和小数点后 6 位。 11 是总位数:

create or replace table test (
   VALUE    number(11, 6)
);

INSERT INTO test 
with TESTTABLE as (
    select '-20833.33' AS VALUE)
SELECT * FROM TESTTABLE;

https://docs.snowflake.com/en/sql-reference/data-types-numeric.html#number

【讨论】:

以上是关于雪花数超出可表示范围的主要内容,如果未能解决你的问题,请参考以下文章

在获取数据期间索引超出部分中的行数范围

对于char型的,如果超出范围怎样算?

求较大整数n的阶乘,因为n较大时n的阶乘超出了正常类型的表示范围,采用数组进行操作(java实现)

音量超出范围

二维向量下标超出范围

下标超出范围错误(错误 9):.FormatConditions