Oracle SQL中缺少选择关键字

时间:2019-04-03 18:31:45

标签: sql oracle

我收到此错误

  

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 个答案:

答案 0 :(得分:4)

您实际上错过了values

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

请注意,我还将列列表添加到了insert中。这是最佳做法。

答案 1 :(得分:3)

如果这些值是您要提供的替代值,那么您就缺少了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,并且引发您看到的错误。