Вот один из вариантов:
Сначала образец данных (на основе таблицы EMP Скотта):
SQL> create table test as select deptno, empno id, ename, sal from emp;
Table created.
SQL> select * From test where deptno = 10;
DEPTNO ID ENAME SAL
---------- ---------- ---------- ----------
10 7782 CLARK 2450
10 7839 KING 10000
10 7934 MILLER 1300
SQL>
Давайте изменим зарплату для всех сотрудников отдела 10 - я передам идентификатор Кларка как параметр:
SQL> merge into test t
2 using (select a.deptno
3 from test a
4 where a.id = &par_id
5 ) x
6 on (x.deptno = t.deptno)
7 when matched then update set
8 t.sal = t.sal * 1.1;
Enter value for par_id: 7782
3 rows merged.
Результат:
SQL> select * From test where deptno = 10;
DEPTNO ID ENAME SAL
---------- ---------- ---------- ----------
10 7782 CLARK 2695
10 7839 KING 11000
10 7934 MILLER 1430
SQL>
Теперь, когда вы знаете как , примените его к своей таблице.