Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Всем, здравствуйте. Помогите плс с проблемкой. У меня есть триггер который делает следующее: 1) Вызывает хранимку, которая создаёт временную таблицу (так как создать её напрямую из триггера невозможно) 2) Затем триггер заполняет эту табличку 3) Вызывает ещё одну хп, которая переносит данные из временной таблицы в постоянную. При вызове последней возникает ошибка SQL0723, говорящая о том что в триггере произоше сбой, а в иформации подаёт SQLCODE -746, SQLSTATE 57053. Полный тескст ошибки: ERROR [09000] [IBM][DB2/AIX64] SQL0723N An error occurred in a triggered SQL statement in trigger "ALERT.FILESPA". Information returned for the error includes SQLCODE "-746", SQLSTATE "57053" and message tokens "MYSCHEMA.UPDATE_INST_COUN|UPDATE_INST_COUNTE". SQLSTATE=09000 База данных версии 9.5 на AIX64. Описание ошибки в документации не прояснило суть происходящего. Подскажите, пожалуйста, что вызывает ошибку и что можно предпринять для её устраниния. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 15:29 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 15:58 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 16:00 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
I_love_MSDN, спасибо за ответ. Эту статью я уже читал, да вот только не смог разобраться. В User response сказано: The operation may be successful if retried. Redesign either the application or the routine to avoid the conflict. Ошибка случается всякий раз, когда срабатывает триггер, так что "The operation may be successful if retried." не актуально. Мне не совсем понятна природа этого конфликта. Как нужно изменить процедуру, чтоб конфликт не повторялся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 16:08 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Я могу только предположить, что проблема решится, если 1) посмотреть от какого пользователя создалась временная таблица 2) Вызывать select от пользователя из п.1, методом set current sqlid blabla ЗЫ: неуверен. - Абсолют' ный -посковый робот по MSDN для - ленивых ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 16:17 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Времення таблица создаётся в начале работы триггера -а читается перед его завершением. Тоесть всё происходит в теле одного триггера, следовательно, от одного и того же пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 16:21 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
PowerEdgeВремення таблица создаётся в начале работы триггера -а читается перед его завершением. Тоесть всё происходит в теле одного триггера, следовательно, от одного и того же пользователя. Тогда ждем Mark'a. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 16:24 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
I_love_MSDNТогда ждем Mark'a. Марк, помогите :| ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 16:39 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 16:40 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. PowerEdge, Покажите схематично тело триггера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 17:02 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
I_love_MSDN А вот тут смотрели? Да. Но я ничего не предпренимал, так как по умолчанию DB2_RESOLVE_CALL_CONFLICT равно YES. А в этом случае : When you set this variable to YES, the default, the database manager strictly enforces the order of execution for accessing tables in procedures called within triggers through the use of temporary tables, as needed - а это как раз мой случай. Установка DB2_RESOLVE_CALL_CONFLICT в ALL добавляет устранение этой ошибки для table functions, так что менять что-либо нет смысла. Вопрос всё-ещё открыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 17:04 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinЗдравствуйте. PowerEdge, Покажите схематично тело триггера. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 17:11 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Точная версия б.д.: Instance "DB2" uses "32" bits and DB2 code release "SQL09053" with level identifier "06040107". Informational tokens are "DB2 v9.5.301.436", "s081210", "WR21427", and Fix Pack "3a". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 17:14 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
PowerEdge, странно... у вас это выполняется: db2 -td@ -vf script.sql Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 17:39 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Забыл: в начало файла надо это вот вставить: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 17:40 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinPowerEdge, странно... у вас это выполняется: Да, всё выполняется без ошибок. Это значит что что-то не так в MYSCHEMA.UPDATE_INST_COUNTERS() ? Я попробовал убрать её вызов из триггера - отработал без ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 18:00 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 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. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 18:03 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Вот собственно хранимка. Не пойму что в ней не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 18:04 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
PowerEdgeВот собственно хранимка. Не пойму что в ней не так.Почитайте про Data conflicts when procedures read from or write to tables . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 18:42 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
PowerEdgeВот собственно хранимка. Не пойму что в ней не так.Т.е. у вас внутри процедур, похоже, идёт обращение к ALERT.FILESPACE. Если да, то поставьте: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 19:03 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, спасибо за ответы. Прямого обращения к ALERT.FILESPACE нету. Использую NEW_TABLE и OLD_TABLE, которые предоставляет триггер. Продолжаю разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 19:45 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Удалось локализовать ошибку. На наличие эксепшена влияет обращение к временной таблице из WIZARD.UPDATE_INST_COUNTERS (а именно при OPEN C1;) Если из объявления курсора убрать Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2009, 20:02 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Поставил DB2_RESOLVE_CALL_CONFLICT=YES (хотя документация говорит что это значение по умолчанию)- безрезультатно. Ошибка всё-роавно проявляется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2009, 10:32 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
PowerEdge, приведите такую таблицу по использованию таблиц в процедурах с указанием метода доступа к этим таблицам (r - read; w - write, create, declare): Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2009, 09:46 |
|
||
|
SQL0746N при вызове хп из триггера
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, table name……………………….|CREATE_TEMP_TABLE| TORE_INST_COUNTERS_TO_TEMP_TABLE| UPDATE_INST_COUNTERS|RUN_ALERT ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SESSION.WIZ_INST_STAT…..|……..DECLARE……..….|……..W……..……..……..……..……..……..…….| .......R.....................................| ……..n/a WIZARD.ALERTCONFIG……...|……..n/a…….………..….|……..n/a……..….…..…..……..….…...……..……| .......R/W................................|………R TSM.FILESPACE……….……..|……..n/a…….………..….|……..n/a……..…….….…..……..……..……..……| .......n/a..................................|……R/W где RUN_ALERT - процедура, инициирующая сработку триггеров. Проделав несколько тестов я обнаружил следующее: процедура, вызывающая сработку триггеров, использует MERGE с двумя апдейтами и одним инсертом. Так вот, если переписать этот MERGE в виде отдельных запросов, тоесть двух последовательных апдейтов и одного инсерта, то ошибка исчезает. Но отказываться от MERGE не очень хочется, потому как уж очень удобно его использовать (подобных процедур довольно много) и хочется до конца разобраться с данной ошибкой, чтоб в полной мере использовать возможности БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2009, 11:33 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=36075564&tid=1603177]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
182ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 17ms |
| total: | 304ms |

| 0 / 0 |
