如果这些值应该是您作为替换值提供的值,那么您缺少 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,它会抛出你看到的错误。