0

为什么会出现精度错误?

INSERT INTO ISBN_LIST (ISBN) VALUES (9780261102354);

给定表格:

CREATE TABLE ISBN_LIST ( 
    ISBN NUMBER (20,20)  NOT NULL -- NUMBER(13) also didn't work
);
ALTER TABLE ISBN_LIST
    ADD CONSTRAINT PK_ISBN_LIST PRIMARY KEY ( ISBN );

[如果你认出 ISBN 就可以加分!]

4

1 回答 1

2

您收到 number(20, 20) 精度错误的原因是因为您正在创建一个精度为 20 且比例为 20 的数字,这意味着数字:

在 0.00000000000000000000 和 0.99999999999999999999 之间。

根据这个sqlfiddlenumber(13)可以工作(也许您需要指定number(13, 0)以确保正确的比例,尽管我同意@xavier avarchar2(13 char)可能是更好的数据类型选择。

于 2012-09-26T09:28:23.637 回答