Вставить запрос, показывающий ошибку

Я создал таблицу в 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);

Где я нарушил ограничения?? Пожалуйста, объясните любой..

1 ответ

Решение

Ваши колонны LATITUDE а также LONGTITUDE определяются довольно странно - NUMBER(6,10) говорит 6 для точности (общее количество цифр) и 10 для масштаба (количество цифр справа от десятичной точки).

Вы либо меняете их на NUMBER(*) или NUMBER (10, 6) или же NUMBER(*,4) или подобное... правильное объявление трудно угадать, но все перечисленное будет работать с предоставленными вами образцами данных...

Для справки см. http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm

Другие вопросы по тегам