Вставить запрос, показывающий ошибку
Я создал таблицу в 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