powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / вдруг стало не всё понятно в merge
8 сообщений из 33, страница 2 из 2
вдруг стало не всё понятно в merge
    #39571570
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делает то-то типа миниотката
Код: 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.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
SQL> exec DBMS_APPLICATION_INFO.SET_CLIENT_INFO ('0');

PL/SQL procedure successfully completed.

SQL> CREATE OR REPLACE TRIGGER tr_tbl1
  2  BEFORE UPDATE ON tbl1 FOR EACH ROW
  3  begin
  4   DBMS_APPLICATION_INFO.SET_CLIENT_INFO (nvl(userenv('client_info'),'0')+1);
  5   dbms_output.put_line(userenv('client_info')||' '||:old.v||' '||:new.v);
  6  end;
  7  /

Trigger created.

SQL> merge
  2    into tbl1
  3    using tbl2
  4    on (tbl2.id = tbl1.id)
  5    when matched then
  6      update set v = tbl2.v
  7  /
1 1 1
2 1 2
3 1 3
4 1 1
5 1 2
6 1 3
  using tbl2
        *
ERROR at line 3:
ORA-30926: unable to get a stable set of rows in the source tables


SQL> select * from tbl2;

        ID V
---------- ----------
         1 1
         1 2
         1 3
         1 4
         1 5
         1 6
         1 7
         1 8
         1 9
         1 10

10 rows selected.



.....
stax
...
Рейтинг: 0 / 0
вдруг стало не всё понятно в merge
    #39571574
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SYdbms_photoshopОписание правила "значение поля может измениться только один раз" где-то есть на oracle.com?Не нашел. Так-что не знаю баг или feature. How to Troubleshoot ORA-30926 Errors? (Doc ID 471956.1) :471956.13.1. … MERGE is a deterministic statement. You therefore need to evaluate the data returned by the USING clause to ensure that there are no duplicate values in the join. Modify the merge statement to include a deterministic where clause.
...
Рейтинг: 0 / 0
вдруг стало не всё понятно в merge
    #39571579
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

ага deterministic

но результат зависит и от того как данные легли в блоке

тоесть
в зависимости "от порядка записей в блоке", может слетать (ORA-30926), а может и мержить (10 rows merged.)

.....
stax
...
Рейтинг: 0 / 0
вдруг стало не всё понятно в merge
    #39571592
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дежавю какое-то merge и ORA-30926
...
Рейтинг: 0 / 0
вдруг стало не всё понятно в merge
    #39571595
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxв зависимости "от порядка записей в блоке", может слетатьОбеспечь детерминизм источника и слетать не будет.
Следуй лоции, а не рискуй на известных мелях.
...
Рейтинг: 0 / 0
вдруг стало не всё понятно в merge
    #39571607
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicStaxв зависимости "от порядка записей в блоке", может слетатьОбеспечь детерминизм источника и слетать не будет.
Следуй лоции, а не рискуй на известных мелях.
да мне то что, я обеспечу

я о другом, в зависимости как легли данные, может слететь, а может и нет

у кого-то может работать и с недетерминизмом, а потом неожиданно на НГ выстрелить

.....
stax
...
Рейтинг: 0 / 0
вдруг стало не всё понятно в merge
    #39571608
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxу кого-то может работать и с недетерминизмом, а потом неожиданно на НГ выстрелитьНе всё диагностируется...
Думать надо заранее.
...
Рейтинг: 0 / 0
вдруг стало не всё понятно в merge
    #39571609
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicStaxу кого-то может работать и с недетерминизмом, а потом неожиданно на НГ выстрелитьНе всё диагностируется...
Думать надо заранее.вот у меня и выстрелило
пришлось думать дальше
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / вдруг стало не всё понятно в merge
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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