插入显示错误的查询

时间:2011-10-30 13:12:32

标签: oracle oracle10g ora-01438

我使用以下查询在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) 

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

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);

我在哪里受到限制?请解释一下..

1 个答案:

答案 0 :(得分: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