написать утверждение блога PL / SQL - PullRequest
0 голосов
/ 01 февраля 2012

предположим, что у нас есть таблица сотрудников, моя цель - написать заявление -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:

, пожалуйста, помогите мне, почему ?, есть ли необходимость в цикле или?

Ответы [ 2 ]

4 голосов
/ 01 февраля 2012

Удалить ; на

update employees e set e.salary=e.salary+e.salary*0.1;

; завершает оператор, но вы продолжаете его с WHERE

2 голосов
/ 01 февраля 2012

У вас есть точка с запятой (;) перед where;точки с запятой закрывают операторы PL / SQL.

Я также предлагаю вам форматировать ваши операторы таким образом, чтобы их было легче читать и было сложнее ошибиться:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...