为什么我会收到精确错误?
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,可获得奖励积分!]
答案 0 :(得分:2)
您为数字(20,20)获得精度错误的原因是因为您正在创建一个精度为20且比例为20的数字,这意味着数字:
介于0.00000000000000000000和0.99999999999999999999之间。
根据此sqlfiddle,number(13)
有效(可能您需要指定number(13, 0)
以确保正确的比例,但我同意@xavier,varchar2(13 char)
是可能是数据类型的更好选择。