数字算术期间的Oracle数据库隐式精度转换

时间:2018-08-31 16:54:01

标签: oracle oracle11g

尝试查找详细说明我对不同精度的数字进行算术运算时会发生什么的文档:

例如Number(5,2)+ Number(6,3)= Number(?,?)

查找指示此转换进行加,减,乘和除的规则。

对Oracle文档进行了检查,但只能找到有关从Float / Double / Char到Number的隐式转换的信息,而不能找到不同精度的Number之间的信息。

1 个答案:

答案 0 :(得分:2)

数据类型将为NUMBER

CREATE TABLE t
AS
SELECT CAST(1 AS Number(5,2)) + CAST(1 AS Number(6,3)) AS r 
FROM dual;

检查元数据:

SELECT table_name, column_name, data_type, data_precision, data_scale
FROM ALL_TAB_COLS
WHERE TABLE_NAME = 'T';

┌─────────────┬──────────────┬────────────┬─────────────────┬────────────┐
│ TABLE_NAME  │ COLUMN_NAME  │ DATA_TYPE  │ DATA_PRECISION  │ DATA_SCALE │
├─────────────┼──────────────┼────────────┼─────────────────┼────────────┤
│ T           │ R            │ NUMBER     │                 │            │
└─────────────┴──────────────┴────────────┴─────────────────┴────────────┘

DBFiddle Demo