|
|
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
Вижу в чужой системе "заглавную" таблицу и иерархию подчиненных таблиц. До пятого уровня включительно. Для удаления старых записей, разработчик понавтыкал во все таблицы всех уровней ID "заглавной" таблицы. Поддерживает внешними ключами и индексами. Удаляет через forall Код: plaintext 1. 2. Ошибки обрабатываются через SQL%BULK_EXCEPTIONS и записываются в лог. На выходе имею записи типа: --- Код: plaintext 1. 2. Могу ли я понять, какая запись и в какой таблице, при этом каскадном удалении была причиной ошибки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 13:18:05 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
receiverМогу ли я понять, какая запись и в какой таблице, при этом каскадном удалении была причиной ошибки?Нет. При SAVE EXCEPTIONS есть только код ошибки. Вывод - отказаться от притянутого за уши FORALL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 13:25:11 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
ElicreceiverМогу ли я понять, какая запись и в какой таблице, при этом каскадном удалении была причиной ошибки?Нет. При SAVE EXCEPTIONS есть только код ошибки. Вывод - отказаться от притянутого за уши FORALL. %BULK_EXCEPTIONS(i).ERROR_INDEX - не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 13:31:51 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousElicreceiverМогу ли я понять, какая запись и в какой таблице, при этом каскадном удалении была причиной ошибки?Нет. При SAVE EXCEPTIONS есть только код ошибки. Вывод - отказаться от притянутого за уши FORALL.%BULK_EXCEPTIONS(i).ERROR_INDEX - не?Подумай сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 13:47:55 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
Elicandrey_anonymousпропущено... %BULK_EXCEPTIONS(i).ERROR_INDEX - не?Подумай сам. Подумал. Вроде все работает как заповедано. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 14:26:51 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousПодумал.Недостаточно. Вопрос был не в том, какой папа не удалился, а в том, какой из многочисленных детей этому помешал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 15:07:56 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
Elicandrey_anonymousПодумал.Недостаточно. Вопрос был не в том, какой папа не удалился, а в том, какой из многочисленных детей этому помешал. Ну от кого-кого, а от тебя не ожидал - словарем и dbms_% пользоваться ты точно умеешь :) В конкретном сценарии ТС задача решается, причем даже не очень сложно. В более общем случае - сложнее, да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 15:13:27 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
receiverМогу ли я понять, какая запись и в какой таблице, при этом каскадном удалении была причиной ошибки? Не проще ли cascade поставить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 15:16:15 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
ora601Не проще ли cascade поставить ?а если ТС не хочет, собственно, удалять при имеющихся зависимостях, а хочет лишь знать чё-каво ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 15:45:45 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousНу от кого-кого, а от тебя не ожидал - словарем и dbms_% пользоваться ты точно умеешь :) ROWID то папaшкин. И что тeперь искать всех детей лейтенанта Шмидта? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 15:49:45 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousНу от кого-кого, а от тебя не ожидал - словарем и dbms_% пользоваться ты точно умеешь :)Аналогично. Неприятно удивлён. Спишу на отсутствие практического опыта. Ещё раз ElicПри SAVE EXCEPTIONS есть только код ошибки.Как следствие - нет параметров текста ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 15:54:26 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
SYROWID то папaшкин. И что тeперь искать всех детей лейтенанта Шмидта? SY. Таки да, сгенерировать по словарю запрос и искать. Благо это не особо сложно в частном конкретном случае и не хлопотно по ресурсам при индексированных fk. В общем случае - задача довольно сложная, не спорю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 16:12:17 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousSYROWID то папaшкин. И что тeперь искать всех детей лейтенанта Шмидта? SY. Таки да, сгенерировать по словарю запрос и искать. Благо это не особо сложно в частном конкретном случае и не хлопотно по ресурсам при индексированных fk. В общем случае - задача довольно сложная, не спорю. Возможно не такая и сложная. Нужно просто в цикле по bulk exceptions выдать: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2016, 16:47:01 |
|
||
|
исключения forall при каскадном удалении через констрейнты
|
|||
|---|---|---|---|
|
#18+
receiver, Можно через log errors подсмотреть имя констрейнта Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2016, 14:57:54 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39258910&tid=1888042]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
207ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 511ms |

| 0 / 0 |
