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

时间:2015-01-24 11:33:25

标签: sql oracle floating-point-precision sqldatatypes

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

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

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

它应该有效,但它给了我一个错误: ORA-00907:缺少右括号。

如果我把NUMBER而不是float,或者我写了float(5),那么它仍然有效。 但如果我写float(5,2),它会导致错误。我相信我是对的,但我很困惑。

任何人都可以给我一个简要的解释,说明我所做的事情或错误。

1 个答案:

答案 0 :(得分:2)

According to the manual,您只能指定float的精度,而不是刻度。

手册中的引用:

  

无法指定比例

所以它应该是FLOAT(2)

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

有关详细信息,请参阅:http://floating-point-gui.de

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