数智融合计算服务 DATAARTSFABRIC-数值类型:任意精度型

时间:2025-06-17 08:50:20

任意精度型

使用Numeric/Decimal进行列定义时,建议指定该列的精度p(总位数)以及范围s(小数位数)。

如果数值的精度或者范围大于列的数据类型所声明的精度和范围,那么系统将会试图对这个值进行四舍五入。如果不能对数值进行四舍五入的处理来满足数据类型的限制,则会报错。

表2 任意精度型

名称

描述

存储空间

范围

NUMERIC[(p[,s])],

DECIMAL[(p[,s])]

精度p取值范围为[1,1000],标度s取值范围为[0,p]。

用户声明精度。每四位(十进制位)占用两个字节,然后在整个数据上加上八个字节的额外开销。

未指定精度的情况下,小数点前最大131,072位,小数点后最大16,383位。

示例:

创建带有DECIMAL数值类型的表。

1
CREATE EXTERNAL TABLE decimal_type_t1 (DT_COL1 DECIMAL(10,4)) STORE AS orc;

插入数据。

1
2
INSERT INTO decimal_type_t1 VALUES(123456.122331);
INSERT INTO decimal_type_t1 VALUES(123456.452399);

查看数据。

1
2
3
4
5
6
SELECT * FROM decimal_type_t1;
   dt_col1
-------------
 123456.1223
 123456.4524
(2 rows)
support.huaweicloud.com/devg-fabric/dataartsfabric_sql_04_0191.html