Отсутствует ключевое слово select в Oracle SQL - PullRequest
0 голосов
/ 03 апреля 2019

Я получаю эту ошибку

Ошибка SQL: ORA-00928: отсутствует ключевое слово SELECT
00928. 00000 - "отсутствует ключевое слово SELECT" `

приЯ пытаюсь вставить вот так

create table certf
(
    certificate_id integer primary key,
    certificate_name varchar(100) not null,
    certificate_content varchar(300) not null
);

insert into certf (&certificate_id, &certificate_name, &certificate_content);

Ответы [ 2 ]

4 голосов
/ 03 апреля 2019

Вам не хватает values на самом деле:

insert into certf (certificate_id, certificate_name, certificate_content)
    values (&certificate_id, &certificate_name, &certificate_content);

Обратите внимание, что я также добавил список столбцов в insert.Это лучшая практика.

3 голосов
/ 03 апреля 2019

Если предполагается, что это значения, которые вы предоставляете в качестве значений подстановки, вам не хватает ключевого слова values:

insert into certf values (&certificate_id,&certificate_name,&certificate_content);

Но вам нужно чтобы строковые значения были в кавычках:

insert into certf values (&certificate_id,'&certificate_name','&certificate_content');

и вы также должны указать имена столбцов:

insert into certf (certificate_id,certificate_name,certificate_content)
values (&certificate_id,'&certificate_name','&certificate_content');

С вашим текущим кодом анализатор видит этот первый список - возможных, но на самом деле недействительных в этом случае - идентификаторов, то есть имен столбцов; потому что он еще не видел это ключевое слово values. Это рассматривается как что-то вроде:

insert into certf (42,some_name,some_content);

И, сделав это, и когда он по-прежнему не видит ключевое слово или список значений values, он ожидает, что это будет конструкция insert ... select. Вы могли бы сделать это так:

insert into certf (certificate_id,certificate_name,certificate_content)
select &certificate_id,'&certificate_name','&certificate_content' from dual;

Но вы этого не делаете. Поэтому он также не видит select и выдает ошибку, которую вы видите.

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