1

我使用以下查询在 oracle10g 中创建了一个表......

CREATE TABLE  "MOBILELOCATION" 
("EMPLOYEEID" NUMBER NOT NULL ENABLE, 
 "PRESENTDATE" VARCHAR2(30) NOT NULL ENABLE, 
  "PRESENTTIME" VARCHAR2(30) NOT NULL ENABLE, 
  "LATITUDE" NUMBER(6,10) NOT NULL ENABLE, 
 "LONGITUDE" NUMBER(6,10) NOT NULL ENABLE) 

表已成功创建...但问题是当我试图在表中插入一行时它显示错误

error ORA-01438: value larger than specified precision allowed for this column

我使用的查询是,

insert into mobilelocation values(12303,'30-10-2011','09:30',16.9876,82.3426);

我在哪里违反了约束?请任何人解释..

4

1 回答 1

3

您的列LATITUDELONGTITUDE的定义相当奇怪 -NUMBER(6,10)精度为 6(总位数),比例为 10(小数点右侧的位数)。

您可以将它们更改为NUMBER(*)或更改为NUMBER (10, 6)NUMBER(*,4)或类似...正确的声明很难猜到,但所有提到的都可以与您提供的示例数据一起使用...

有关参考,请参阅http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#i16209

于 2011-10-30T13:24:15.567 回答