ОБНОВЛЕНИЕ SQL в НАЧАЛЕ и КОНЕЦ - PullRequest
0 голосов
/ 18 декабря 2018

Мне нужно обновить большую таблицу (АККАУНТЫ) и изменить столбец на основе самого себя.

Как это сделать?

Этот запрос:

begin
UPDATE ACCOUNTS SET ACC = '1' where ACC IN ('3');
UPDATE ACCOUNTS SET ACC = '2' where ACC IN ('4');
end

Только обновленияОт 4 до 2.

1 Ответ

0 голосов
/ 18 декабря 2018

Для больших таблиц в любом случае лучше выполнить только одно обновление .

Вы можете объединить оба обновления в одно:

select * from ACCOUNTS;

A
-
1
2
3
4


BEGIN
  update ACCOUNTS
  set ACC = case when ACC = '3' then '1'
                 when ACC = '4' then '2' end
  where ACC in ('3','4'); 
  dbms_output.put_line('rows updated '  || SQL%ROWCOUNT);
END;
/

rows updated 2

select * from ACCOUNTS;

A
-
1
2
1
2

Не забудьтедо COMMIT.

...