ORA-00907:缺少右括号,FLOAT 数据类型问题,Oracle 11gR2



我一直在尝试存储产品的价格。所以我需要 2 个小数点,我认为数据类型应该是浮点数。

我正在使用Oracle 11gR2。以下是我写的。

create table test (
product varchar2(20),
price   float(5,2));

它应该可以工作,但它给了我一个错误:ORA-00907:缺少右括号。

如果我输入 NUMBER 而不是浮点数,或者如果我写 float(5),它仍然有效。但是如果我写 float(5,2),它会导致错误。我相信我是对的,但我很困惑。

谁能给我一个简短的解释,说明发生了什么或我做错了什么。

根据手册,您只能指定float的精度,而不能指定刻度。

引用手册:

无法指定比例

所以应该FLOAT(2)

但我希望您了解FLOAT数据类型的所有缺点。这是一个近似类型。你不一定能拿回你投入的东西。

有关更多详细信息,请参阅以下内容:http://floating-point-gui.de

使用float几乎总是错误的选择。

最新更新