Как сделать обновление и затем выбрать PL / SQL - PullRequest
0 голосов
/ 21 сентября 2018

Мне нужно обновить одну таблицу, а затем я хочу увидеть результат моих действий.Как я могу использовать PL / SQL ?!У меня есть этот вариант, но он не работает.

declare 
 switcher VARCHAR(20);
--step one - update
begin
  switcher := &faid;
  update table_one.field t1
  set t1.str_value = switcher
  where t1.name = 'NAME_1';
commit; 
end;
--step two - select 
begin
  select * from table_one.field t1
  where t1.name = 'NAME_1'
end

1 Ответ

0 голосов
/ 21 сентября 2018

Вы не можете вернуть результат, используя 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';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...