предположим, что у нас есть таблица сотрудников, моя цель - написать заявление -blog, в котором зарплата этих сотрудников увеличивается на 10%, а зарплата выше, чем в среднем в отделе, где он работает, и на 20%, если не более оплата труда,
Я думаю, что код должен быть
begin
update employees e set e.salary=e.salary+e.salary*0.1;
where e.salary>(select avg(e.salary) from employees e group by e.department_id);
update employees e set e.salary=e.salary+e.salary*0.1;
where e.salary<(select avg(e.salary) from employees e group by e.department_id);
end;
но возвращает следующий список ошибок,
Error starting at line 4 in command:
begin
update employees e set e.salary=e.salary+e.salary*0.1;
where e.salary>(select avg(e.salary) from employees e group by e.department_id);
update employees e set e.salary=e.salary+e.salary*0.1;
where e.salary<(select avg(e.salary) from employees e group by e.department_id);
end;
Error report:
ORA-06550: line 3, column 1:
PLS-00103: Encountered the symbol "WHERE" when expecting one of the following:
( begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
<an identifier> <a double-quoted delimited-identifier>
<a bind variable> << continue close current delete fetch lock
insert open rollback savepoint set sql execute commit forall
merge pipe purge
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
, пожалуйста, помогите мне, почему ?, есть ли необходимость в цикле или?