Ты это понимаешь?
создать тестовую таблицу ...
create table test_table(Name VARCHAR2(10), Age NUMBER(10), City VARCHAR2(10));
вставить пример данных ...
insert into test_table(Name, Age, City) values('N', 22, 'J');
insert into test_table(Name, Age, City) values('K', NULL, 'K');
insert into test_table(Name, Age, City) values(NULL, 23, 'L');
commit;
данные выглядят так ...
SQL> select * from test_table;
NAME AGE CITY
---------- ---------- ----------
N 22 J
K K
23 L
и, наконец, программно обновить примеры данных с помощью оператора CASE ...
update test_table
set Name = (CASE WHEN Name IS NULL AND Age >= 23 THEN 'John' ELSE Name END)
,Age = (CASE WHEN Age IS NULL AND Name = 'K' THEN 21 ELSE Age END)
;
commit;
3 rows updated
и теперь данные выглядят так ...
SQL> select * from test_table;
NAME AGE CITY
---------- ---------- ----------
N 22 J
K 21 K
John 23 L