|
|
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
Всем привет. Подскажите, пожалуйста, какой нибудь еврейский метод аудита currval для сиквенса, используемого в merge: MERGE INTO tbl1 USING ( select * from tbl2) t ON (tbl1.n = t.n) WHEN MATCHED THEN UPDATE SET ... WHEN NOT MATCHED THEN INSERT (...) VALUES (seq.nextval,...); На ум приходит триггер for each row и разбивка merge на отдельные update и insert, но что - то подсказывает, эта идея некошерная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 14:44 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
israelshamir, Нафиг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 17:34 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
israelshamirВсем привет. Подскажите, пожалуйста, какой нибудь еврейский метод аудита currval для сиквенса, используемого в merge: MERGE INTO tbl1 USING ( select * from tbl2) t ON (tbl1.n = t.n) WHEN MATCHED THEN UPDATE SET ... WHEN NOT MATCHED THEN INSERT (...) VALUES (seq.nextval,...); На ум приходит триггер for each row и разбивка merge на отдельные update и insert, но что - то подсказывает, эта идея некошерная а таки чисто спросите у того сиквенса его currval до/после того merge ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 18:18 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
orawishisraelshamirВсем привет. Подскажите, пожалуйста, какой нибудь еврейский метод аудита currval для сиквенса, используемого в merge: MERGE INTO tbl1 USING ( select * from tbl2) t ON (tbl1.n = t.n) WHEN MATCHED THEN UPDATE SET ... WHEN NOT MATCHED THEN INSERT (...) VALUES (seq.nextval,...); На ум приходит триггер for each row и разбивка merge на отдельные update и insert, но что - то подсказывает, эта идея некошерная а таки чисто спросите у того сиквенса его currval до/после того merge не ожидал что мерже палит номера даже если инсертов не было Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 19:08 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
israelshamirВсем привет. Подскажите, пожалуйста, какой нибудь еврейский метод аудита currval для сиквенса, используемого в merge: MERGE INTO tbl1 USING ( select * from tbl2) t ON (tbl1.n = t.n) WHEN MATCHED THEN UPDATE SET ... WHEN NOT MATCHED THEN INSERT (...) VALUES (seq.nextval,...); На ум приходит триггер for each row и разбивка merge на отдельные update и insert, но что - то подсказывает, эта идея некошерная не совсем понял в чем проблема? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 19:10 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
stax.., мне надо получить все значения сиквенса, которые были сгенерированы этим мержем в этом все дело. не хотелось бы разбивать merge на update и insert и в цикле получать currval для каждой вставленной записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 19:37 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
israelshamirstax.., мне надо получить все значения сиквенса, которые были сгенерированы этим мержем в этом все дело. не хотелось бы разбивать merge на update и insert и в цикле получать currval для каждой вставленной записи. а как Вы их можете получить допустим было 4 изменения 2 удаления и три инсерта как узнаете что было именно 3 инсерта (без привязки к currval)? ps merge скользкий оператор ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 19:51 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
israelshamirмне надо получить все значения сиквенса, которые были сгенерированы этим мержем в этом все дело Число значений сиквенса, которые были сгенерированы мержем = SQL%ROWCOUNT: Код: 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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 19:54 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
israelshamirstax.., мне надо получить все значения сиквенса, которые были сгенерированы этим мержем в этом все дело. не хотелось бы разбивать merge на update и insert и в цикле получать currval для каждой вставленной записи. запоминать куррвал в триггере он инсерт в коллекцию или в тмр табличку ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 19:57 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
SY, Особенно все замечательно будет выглядеть в случае распараллеливания этого хозяйства, интереснее всего получается с разными DOP... Regards Maxim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 20:05 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
SYisraelshamirмне надо получить все значения сиквенса, которые были сгенерированы этим мержем в этом все дело Число значений сиквенса, которые были сгенерированы мержем = SQL%ROWCOUNT: Код: 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. SY. 1) нужны те которые сгенерированы для вставки 2) в паралельных тоже могут палить номера ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 20:15 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
stax..1) нужны те которые сгенерированы для вставки 2) в паралельных тоже могут палить номера Или тригер на insert, или UDF: Код: 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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 20:45 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
Всем большое спасибо за помощь! Буду использовать UDF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2016, 21:14 |
|
||
|
merge и seq.currval
|
|||
|---|---|---|---|
|
#18+
israelshamirВсем большое спасибо за помощь! Буду использовать UDF. я б спрятал nextval в тело ф-ции (без параметров) тогда matched не будет палить номера ps правда есть нюанс с многократным использованием nextval ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2016, 15:37 |
|
||
|
|

start [/forum/topic.php?fid=52&gotonew=1&tid=1886974]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
9ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 519ms |

| 0 / 0 |
