【发布时间】:2011-11-04 05:15:24
【问题描述】:
我一直在尝试了解 Oracle 数据库对数据类型 = 数字的使用。我遇到了以下链接:
我在解释它时遇到了麻烦。我应该提到我没有 Oracle 背景,但从 Matlab 经验中接近这一点。我了解数字数据类型具有精度和规模。我不明白这里如何处理指数。指数是否与精度和规模分开考虑?或者,指数是否受到精度和规模的限制?
这是我的困惑——上面的链接以:
问:我将表的列的数据类型声明为 NUMBER 并假定它为 具体为 Number(38)。但我发现奇怪的是 接受超过 38 位的数字。即。 1.111E+125。如果数据类型的精度 是 38,比例可以从 -84 到 127 这个值如何插入到列中。
A:我们说... 1.111e+125只有4位精度(需要表示的位数 数字——在本例中为 1111)。
这似乎表明指数与精度和比例分开处理。但是有人问了几条消息:
问:当我创建如下表时: 创建表测试(无编号(7)); 插入测试值(1.00e+25); 它给出以下错误消息: ORA-01438: 大于指定精度的值允许此列。 你能请。解释这一点。
A:你说的是 7 位数,你给的是 25
这似乎表明指数受到精度的限制。希望有人能帮助我理解这两个答案是如何正确的。
【问题讨论】: