根据我在这里和其他地方发现的旧帖子,我一直假设没有指定小数位数的NUMBER数据类型默认为零。但是,当我查看服务器上的数据时,即使没有指定小数位数,我也会看到有理数(读取非整数)。这是预期的行为吗?
为了提供一些背景信息,我是一名技术作家,并且在记录与我们保存的数据相关的各种事情。我一直假设所有未指定小数位数的数字都是整数。如果不正确,则需要更新文档。
我基本上使用以下链接作为我对规模的推理的引用,但现在我认为它已经过时了。 Link
答案 0 :(得分:2)
我认为Oracle文档具有误导性。如果未指定精度和,则数字按原样存储;否则,数字按原样存储。默认为0
比例仅在具有指定精度的情况下发生。
因此,以下代码存储pi的前几位:
create table t (n number);
insert into t(n) values (3.14159265358979);
但这不是:
create table t2 (n number(5));
insert into t2(n) values (3.14159265358979);
Here是一个db <>小提琴,对此进行了说明。
在我的记忆中,这是一个不可磨灭的标记,这是从将Oracle数据库移植到BigQuery(当时甚至没有数字)的有趣时光。 Oracle number
数据类型是过渡过程中最困难的部分之一。最后,我们需要将其移动到字符串中。