Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как работает delete в конструкции merge? / 7 сообщений из 7, страница 1 из 1
04.08.2020, 14:51
    #39986404
bhr
bhr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает delete в конструкции merge?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
create table a_bba_tst
as 
select 1 id, 0 col1 from dual
union all 
select 2 id, 0 col1 from dual
union all 
select 3 id, 0 col1 from dual
union all 
select 4 id, 0 col1 from dual;
---
create table b_bba_tst
as 
select 1 id, 1 del_flg from dual
union all 
select 2 id, 1 del_flg from dual
union all 
select 3 id, 1 del_flg from dual
union all 
select 4 id, 1 del_flg from dual;
--------------
merge into a_bba_tst a
using 
  (select *
     from b_bba_tst) u
 on (u.id = a.id)
when matched then 
  update set a.col1 = u.id 
     where u.del_flg = 0
  delete 
     where u.del_flg = 1;
     
select * from a_bba_tst;
ID	COL1
1	0
2	0
3	0
4	0


Ни одной строки не удалилось.
Что я делаю не так?
...
Рейтинг: 0 / 0
04.08.2020, 15:06
    #39986410
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает delete в конструкции merge?
bhrНи одной строки не удалилось.

Так они удаляются из b_bba_test.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.08.2020, 15:20
    #39986416
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает delete в конструкции merge?
Dimitry Sibiryakov

Так они удаляются из b_bba_test.


Шутить изволите????

bhr:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
merge into a_bba_tst a
using
  (select *
     from b_bba_tst) u
 on (u.id = a.id)
when matched then
  update set a.col1 = u.id
--     where u.del_flg = 0
  delete
     where u.del_flg = 1
/



SY.
...
Рейтинг: 0 / 0
04.08.2020, 15:23
    #39986418
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает delete в конструкции merge?
SY
Шутить изволите????

Нет, всего лишь в маразм впадать.
...
Рейтинг: 0 / 0
04.08.2020, 15:23
    #39986419
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает delete в конструкции merge?
...
Рейтинг: 0 / 0
04.08.2020, 15:28
    #39986424
bhr
bhr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает delete в конструкции merge?
ой... спасибо. помогло. вернее, в данном тестовом примере помогло.
а вот в оригинальных таблицах вызвало ошибку "ora-08006 - заданной строки больше не существует"
ааа.... ясно - у меня дубли строк в целевой таблице.
...
Рейтинг: 0 / 0
04.08.2020, 15:58
    #39986435
bhr
bhr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает delete в конструкции merge?
Elic

наблюдаю бурю эмоций в теме. и впрямь нелогично устроено.
Причем, один из участников дискуссии - коллега, сидящий за соседним столом.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как работает delete в конструкции merge? / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]