|
|
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
Странная ситуация... Использую SQL Navigator 7.0.0 и выполняю следующий код: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. При выполнении select, записи в таблице ttt не вижу, как-будто происходит неявный откат транзакции. Вроде бы должна выполниться вставка записи, сгенерироваться исключение и все, без отката самой вставки. С чем это может быть связано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 15:32 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
Блок, в котором возникло исключение, откатывается целиком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 15:54 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
AmKadБлок, в котором возникло исключение, откатывается целиком.Слишком упрощённо, поэтому технически неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 16:10 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
Guest_rollback_123и все, без отката самой вставки.RTFM statement-level rollback (FAQ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 16:28 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
ElicGuest_rollback_123и все, без отката самой вставки.RTFM statement-level rollback (FAQ) Тоже наткнулся на эту ссылку, когда искал, что дать топикстартеру. Но счел ее не столь убедительной, statement-level rollback он конечно statement-level, но из приведенной статьи я бы не смог сделать однозначного вывода, что это распространяется и на весь pl/sql блок целиком, а не sql-команды в нем по отдельности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 16:46 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
AmKadя бы не смог сделать однозначного вывода, что это распространяется и на весь pl/sql блок целиком, а не sql-команды в нем по отдельности.Не спорю, не разжёвано. Но разве AB - это не statement? statement-level rollback относится к любому server-call-у. Если грубо - любой execute: из хост-программы, а внутри PL/SQL - все связанное с SQL% (DML, for update, commit, EI), dbms_sql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 17:05 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
И да, ничто так не подтверждает правило, как исключения. Есть exception, который не выполняет statement-level rollback. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 17:07 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
ElicНо разве AB - это не statement? statement-level rollback относится к любому server-call-у.Так-то оно так. Но когда понимаешь, что внутри AB-statement-a есть другие SQL-statement-ы, а такие выражения, как server-call и pl/sql-блок в статье опущены, невольно задаешься вопросом, как эти правила выполняются для AB-блока. Другое же дело - когда знаешь, как это работает, то и статью уже воспринимаешь под соответствующим углом. ElicЕсть exception, который не выполняет statement-level rollbackСходу сейчас не угадаю. Какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 17:22 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
AmKadневольно задаешься вопросом, как эти правила выполняются для AB-блока. Откаты statement-ов раскручиваются пока им не встретится обработчик соответствующего исключения. По-моему, вполне очевидно, что любое исключение обязано быть хоть как-то обработано на уровне пользовательского кода, оно не может просто исчезнуть в воздухе. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 17:43 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, " оно не может просто исчезнуть в воздухе" - NO_DATA_FOUND внутри pipelined функций) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 17:49 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
AmKadчто внутри AB-statement-a есть другие SQL-statement-ы,А также наоборот, о чём даже написано в документации. AmKadСходу сейчас не угадаю. Какой?Hint: array ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 17:52 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
VintNO_DATA_FOUND внутри pipelined функций) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 17:53 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
VintNO_DATA_FOUND внутри pipelined функций) А оно там возникает именно как исключение, а не просто состояние NO_MORE_DATА у выходного курсора?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 17:56 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovAmKadневольно задаешься вопросом, как эти правила выполняются для AB-блока. Откаты statement-ов раскручиваются пока им не встретится обработчик соответствующего исключения. По-моему, вполне очевидно, что любое исключение обязано быть хоть как-то обработано на уровне пользовательского кода, оно не может просто исчезнуть в воздухе. Очевидно, когда знаешь, опробовал на реальных примерах и опыте. А выстроить у себя в голове понимание работы pl/sql блоков, связь statement-level rollback и exception (+ вложенности) внутри них по результатам только этой статьи интуиции мне бы не хватило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 18:01 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
С NO_DATA_FOUND в Oracle вообще не все хорошо Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Код: plsql 1. 2. 3. 4. 5. Получим Exception, но в тоже время Код: plsql 1. Нормально отработает без Exception. Но хорошо что хоть отработает, а так на какой-то версии если в запросе была функция которая генерировала no_data_found то можно было потом долго удивляться как запрос без условий возвращал меньше строк чем есть в таблице :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 18:20 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, к сожалению, глотнет даже если руками рейзнуть, и иногда это больно Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2017, 18:26 |
|
||
|
Неявный откат транзакции для анонимного блока
|
|||
|---|---|---|---|
|
#18+
ElicAmKadСходу сейчас не угадаю. Какой?Hint: array Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2017, 13:16 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=175&tid=1886407]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 422ms |

| 0 / 0 |
