【问题标题】:ORA-00907: missing right parenthesis, FLOAT datatype issue, Oracle 11gR2ORA-00907: 缺少右括号,FLOAT 数据类型问题,Oracle 11gR2
【发布时间】:2015-03-23 09:15:17
【问题描述】:

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

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

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

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

如果我用 NUMBER 代替 float,或者如果我写 float(5),它仍然有效。 但如果我写 float(5,2),它会导致错误。我相信我是对的,但我很困惑。

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

【问题讨论】:

    标签: sql oracle floating-point-precision sqldatatypes


    【解决方案1】:

    According to the manual,您只能为float 指定精度,不能指定比例。

    引自手册:

    无法指定比例

    所以应该是FLOAT(2)

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

    更多详情请看:http://floating-point-gui.de

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

    【讨论】:

    • 您好 a_horse_with_no_name,我已经检查了您提供的链接(手册)。所以我现在要使用 NUMBER 数据类型。感谢您为我提供最可靠的信息。
    • @Murshed:没有冒犯,但你可以在问这里之前自己查阅手册。
    • Base-2^n 浮点类型通过否定证明(你最喜欢的神)的存在,因为它们显然是(你最喜欢的邪恶拟人化)的作品。 :-)
    猜你喜欢
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 2020-08-05
    • 2020-06-14
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多