Вы не можете вернуть результат, используя SELECT из блока PL / SQL.Удалите begin
перед выбором и end
после него.
Вы также не можете включить имя столбца (не «поле») в таблицу для оператора UPDATE
.На столбцы ссылаются в предложении SET
.То же самое верно для ссылки на таблицу в предложении FROM
.
Вам также нужен другой символ для завершения блока PL / SQL.В мире Oracle (sqlplus
, SQL Developer) , который обычно является символом /
.
declare
switcher VARCHAR(20);
--step one - update
begin
switcher := &faid;
update table_one -- only the table name here
set str_value = switcher -- a column can be referenced here
where name = 'NAME_1'; -- and a column can be referenced here
commit;
end;
/
select *
from table_one t1 -- no "field" after the table name here either
where t1.name = 'NAME_1';
Но вам на самом деле не нужен PL / SQL дляВсе это.Предполагая, что SQL * Plus (или SQL Developer) будет работать так же:
update table_one
set str_value = &faid
where name = 'NAME_1';
commit;
select *
from table_one t1
where t1.name = 'NAME_1';