ORA-01722!Почему я не могу вставить NUMBER в поле NUMBER без этой ошибки? - PullRequest
0 голосов
/ 20 декабря 2018

Может кто-нибудь сказать мне, что здесь происходит?

Итак, у меня есть простое расположение в таблице, и оно имеет только два столбца;один - число, а другой - varchar2.

Я просто пытаюсь вставить некоторые данные в таблицу расположений, чтобы получить возможность взломать другие большие наборы данных, но каждый раз получаю эту чертову ошибку.

Error starting at line : 7 in command -
INSERT INTO location
VALUES (1, 'Head Office')
Error report -
ORA-01722: invalid number

ПРИМЕЧАНИЕ. Перед повторным голосованием ДА - я видел, как другие об этом писали, но обычно это происходит в менее очевидной ситуации, чем моя ситуация, когда они пытаются ввести строку в поле числа или число в строкуполе!

В моем случае, однако, данные в операторе INSERT являются числом И тип данных также НОМЕР!

СТРУКТУРА ДАННЫХ:

CREATE TABLE location(
    locID NUMBER(4) NOT NULL,
    locName VARCHAR2(100) NOT NULL
);

ВСТАВКА:

INSERT INTO location
VALUES (1, 'Head Office');

Код ошибки можно увидеть выше там, где я впервые упомянул его.

Заранее спасибо.

PS Возможно, стоит упомянуть, что поле идентификатора в таблице 'location' используется в качестве FOREIGN KEY в отдельной таблице 'employee'.Однако я проверил соответствие типов данных!

РЕДАКТИРОВАТЬ # 1: Я использую ORACLE SQL Developer

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Думайте, как глупо, вы получаете ошибку номера из " head office ", а не из 1 .На самом деле вы пытаетесь вставить строку в число.Если вы не хотите писать имена столбцов для вставки, вы должны полностью определить все значения во вставке вместо , как указано в таблице.Я предполагаю, что ваша структура таблицы

locId|locNumber

Итак, ваша вставка должна быть такой, как показано ниже

insert into table values (1,'head office')

Надеюсь, вы понимаете логику быстрого доступа

0 голосов
/ 20 декабря 2018

Всегда включайте столбцы при выполнении insert:

INSERT INTO location (locId, locname)
    VALUES (1, 'Head Office');

Из вашего описания проблемы это на самом деле не должно ее устранять.Это просто хорошая привычка.

Выше приведен правильный SQL для вашей таблицы.Если ошибка продолжает возникать, это, вероятно, происходит от триггера на столе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...