Ошибка "column not allowed here" в инструкции INSERT - программирование
Подтвердить что ты не робот

Ошибка "column not allowed here" в инструкции INSERT

Я создал эту таблицу под названием LOCATION   тем самым:

CREATE TABLE LOCATION(
POSTCODE VARCHAR(10) PRIMARY KEY,
STREET_NAME VARCHAR(20),
CITY VARCHAR(20));

и когда я пытаюсь добавить некоторую дату в таблицу, она не работает, говоря, что есть ошибка

INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE');

ошибка говорит

не разрешен здесь

4b9b3361

Ответ 1

Вам не хватает котировок вокруг первого значения, оно должно быть

INSERT INTO LOCATION VALUES('PQ95VM', 'HAPPY_STREET', 'FRANCE');

Кстати, вам было бы полезно указать имена столбцов явно в INSERT по соображениям удобочитаемости, ремонтопригодности и надежности, т.е.

INSERT INTO LOCATION (POSTCODE, STREET_NAME, CITY) VALUES ('PQ95VM', 'HAPPY_STREET', 'FRANCE');

Ответ 2

Некоторое время. Выполняя запрос insert, мы сталкиваемся с:

Колонка не разрешена здесь

ошибка. Из-за цитаты может отсутствовать в строковых параметрах. Добавьте предложение в строковые параметры и попробуйте выполнить.

Попробуйте следующее:

INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');

или

INSERT INTO LOCATION (ID, FIRST_NAME, LAST_NAME) VALUES('PQ95VM','HAPPY_STREET','FRANCE');

http://www.drtuts.com/oracle-error-column-not-allowed-here/

Ответ 3

Как сказал Scaffman - вам не хватает котировок. Всегда, когда вы передаете значение varchar2, используйте кавычки

INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');

Итак, один (') начинает строку, а второй (') закрывает его.

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

Мой отец сказал мне: "ты должен быть храбрым, сын".

Вам нужно использовать символ тройной кавычки, например:

"Мой отец сказал мне:" Ты должен быть храбрым, сын ".

* добавление метода цитирования может различаться для разных движков db

Ответ 4

То, что вы пропустили, составляет " " в почтовом индексе, потому что это varchar.

Существует два способа вставки.

При создании таблицы Table created. и вы добавляете строку сразу после ее создания, вы можете использовать следующий метод.

INSERT INTO table_name
VALUES (value1,value2,value3,...);

1 row created.

Вы добавили столько таблиц или сохранили, и вы снова открываете его, вам нужно также указать имя столбца таблицы, иначе оно будет отображать ту же ошибку.

ERROR at line 2:
ORA-00984: column not allowed here


INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

1 row created.

Ответ 5

INSERT INTO LOCATION VALUES(PQ95VM,'HAPPY_STREET','FRANCE');

вышеупомянутый код неверен, потому что ваш первый параметр POSTCODE имеет тип VARCHAR(10). Вы должны были использовать ' '.

попробуйте INSERT INTO LOCATION VALUES('PQ95VM','HAPPY_STREET','FRANCE');

Ответ 6

Эта ошибка возникает, если мы вносим ошибку орфографии при вводе имени переменной. Как в хранимой proc, у меня есть имя переменной x и в моей инструкции insert я использую

insert into tablename values(y);

Здесь будет помечен столбец ошибок.

Ответ 7

Scanner sc = new Scanner(System.in); 
String name = sc.nextLine();
String surname = sc.nextLine();
Statement statement = connection.createStatement();
String query = "INSERT INTO STUDENT VALUES("+'"name"'+","+'"surname"'+")";
statement.executeQuery();

Не забудьте добавить "----" при конкатенации строки.