寻找有关Oracle SQL Number DATA的最新文档来回答规模问题

时间:2019-06-11 20:16:49

标签: sql oracle

根据我在这里和其他地方发现的旧帖子,我一直假设没有指定小数位数的NUMBER数据类型默认为零。但是,当我查看服务器上的数据时,即使没有指定小数位数,我也会看到有理数(读取非整数)。这是预期的行为吗?

为了提供一些背景信息,我是一名技术作家,并且在记录与我们保存的数据相关的各种事情。我一直假设所有未指定小数位数的数字都是整数。如果不正确,则需要更新文档。

我基本上使用以下链接作为我对规模的推理的引用,但现在我认为它已经过时了。 Link

我还阅读了oracle文档herehere。最后一个链接还指出,如果未指定比例,则默认设置为零。

1 个答案:

答案 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数据类型是过渡过程中最困难的部分之一。最后,我们需要将其移动到字符串中。