|
|
|
autonomous_transaction
|
|||
|---|---|---|---|
|
#18+
Привет, не могу понять почему не работает. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: plsql 1. 2. 3. 4. 5. 6. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Если выполнить Код: plsql 1. 2. Получаем значение idd_ После этого вставляем в Код: plsql 1. 2. То нужные данные получаем. Но вот всё вместе почему-то не работает, autocommit выключен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 10:39 |
|
||
|
autonomous_transaction
|
|||
|---|---|---|---|
|
#18+
dveansне работаетПочитай про уровни изоляции и не используй автономки. Они здесь не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 11:00 |
|
||
|
autonomous_transaction
|
|||
|---|---|---|---|
|
#18+
123йй, тогда я проверил, вроде работало, потом заметил, что удаленее не работает и написал через транзакцию его, но в итоге вся процедура перестала работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 11:24 |
|
||
|
autonomous_transaction
|
|||
|---|---|---|---|
|
#18+
-2-, почитаю, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 11:25 |
|
||
|
autonomous_transaction
|
|||
|---|---|---|---|
|
#18+
-2-, почитал и к сожалению не понял как можно правильно это применить для моего случая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 15:34 |
|
||
|
autonomous_transaction
|
|||
|---|---|---|---|
|
#18+
Код: 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. Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 16:50 |
|
||
|
autonomous_transaction
|
|||
|---|---|---|---|
|
#18+
dveans , автономная транзакция это фактически другая сессия. Результаты DML двух сессий не видны друг другу до commit. Что Вы делаете: 1. Запускается сессия 1, где вызывается процедура actuarialnewversion. 2. В другой сессии Вы чистите таблицу inspolreport. Делаете commit. 3. В 1 сессии пытаетесь выбрать данные процедурой applynewversion, но Вы только что их удалили в другой сессии. Поэтому естественно, что ничего не выбирается. 4. Тут что-то происходит(тело процедуры insurancepolicy_fconstructor Вы не предоставили, поэтому не знаю, что она делает) 5. Во 2 сессии вставляете данные в цикле. Делаете commit. 6. Делаете rollback, который в Вашей примере совсем ничего не делает. Потому что rollback работает в рамках сессии 1. Все удаления/вставки Вы делали во 2 сессии, соответственно rollback из 1 сессии никак на них не влияет. В итоге в таблице inspolreport будут данные, вставленные процедурой actuarialnewversion_insert . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 19:38 |
|
||
|
autonomous_transaction
|
|||
|---|---|---|---|
|
#18+
IMNO, Немного не так, как Вы написали. 1.Вызывается процедура actuarialnewversion. 2. Удаляются данные с таблицы inspolreport. 3. В applynewversion нет выборки данных с inspolreport, здесь получаем новый idd_(в этой процедуре никаких commit нет). 4. Вставляем новый idd_ в insurancepolicy_fconstructor и заполняем сессионную таблицу inspolreport_session. 5. Вставляем данные с inspolreport_session в inspolreport. Вот как можно сделать откат applynewversion?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 09:47 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39681138&tid=1883661]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
184ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 492ms |

| 0 / 0 |
