Если предполагается, что это значения, которые вы предоставляете в качестве значений подстановки, вам не хватает ключевого слова 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
и выдает ошибку, которую вы видите.