【问题标题】:Insert query showing an error插入显示错误的查询
【发布时间】:2011-10-30 13:12:31
【问题描述】:

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

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

【问题讨论】:

    标签: oracle oracle10g ora-01438


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      相关资源
      最近更新 更多