|
Пресловутая ошибка ORA-01792 и как это можно обойти (если можно)
|
|||
---|---|---|---|
#18+
Добрый день! Поискал на форуме по коду ошибки ORA-01792. Похожего не нашел. Во всех темах либо процедуры/функции, либо чуть чуть не в ту степь. Есть задача, сделать сводный отчет (результат запроса) в разрезе групп и сотрудников по их "успеваемости" по записям, в сущностях ACTIONS и REQUESTS, созданным за последние 100 дней. Ниже представлен код, который для удобства разнес по вью. В живом запросе все написано через WITH. При выполнении результирующего запроса получаю ошибку: ORA-01792: максимальное число столбцов в таблице или представлении - 1000 01792. 00000 - "maximum number of columns in a table or view is 1000" Ошибка появляется при джойне вьюх в запрос. Если убрать джойны, то все по отдельности работает. Порядок записей в таблицах ACTIONS, REQUESTS - по 200k, WORKER_GROUP - 800k, WORKER - 3k Код: 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. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76.
покопавшись на металинке нашел Doc ID 1951689.1, где сказано следующее MetalinkSOLUTION The workaround is to set "_fix_control"='17376322:OFF' SQL> alter session set "_fix_control"='17376322:OFF'; or at system level : SQL> alter system set "_fix_control"='17376322:OFF'; OR Apply Patch 19509982 if available for your DBVersion and Platform Версия рабочей базы, как раз та, что указана в статье: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production PL/SQL Release 12.1.0.2.0 - Production Теперь вопросы: 1. Можно ли это сделать на SQL (без процедур и функций) каким либо еще образом, чтобы не выстреливала данная ошибка? 2. Если отключить проверку, могут ли быть какие либо негативные последствия? К сожалению, я не являюсь ДБА, поэтому такие вопросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 08:21 |
|
Пресловутая ошибка ORA-01792 и как это можно обойти (если можно)
|
|||
---|---|---|---|
#18+
EddySiebel Добрый день! Теперь вопросы: 1. Можно ли это сделать на SQL (без процедур и функций) каким либо еще образом, чтобы не выстреливала данная ошибка? Можно добавить в запрос хинт /*+ OPT_PARAM('_fix_control' '17376322:OFF') */ EddySiebel Добрый день! 2. Если отключить проверку, могут ли быть какие либо негативные последствия? Сталкивался с этим багом. Мне 17376322:OFF помог без негативных последствий. Но всё надо тестировать, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 10:47 |
|
Пресловутая ошибка ORA-01792 и как это можно обойти (если можно)
|
|||
---|---|---|---|
#18+
PuM256, Спасибо за рекомендацию! для понимания: При таком указании эта директива будет выполняться только для этого запроса в момент вызова? Или она будет установлена в сессии запуска этого запроса? негативные последствия в уже, скажем так, существующих процессах. Проверить то это у меня никак не получится. А админы сказали, можем установить указанный в саппорте патч под вашу ответственность))) грусть печаль ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 11:15 |
|
Пресловутая ошибка ORA-01792 и как это можно обойти (если можно)
|
|||
---|---|---|---|
#18+
Попробовал подставить хинт. Выполнил запрос с хинтом он отработал. Убрал хинт, перестал работать. Вывод: для текущего запроса. Если не прав, прошу поправить) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 11:25 |
|
Пресловутая ошибка ORA-01792 и как это можно обойти (если можно)
|
|||
---|---|---|---|
#18+
EddySiebel, Хинт сработает только для этого запроса. Alter session - для всех запросов, выполняемых в текущей сессий Alter system - глобально во всей базе Патч - тоже, естественно, глобально ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2021, 11:31 |
|
|
start [/forum/topic.php?fid=52&tid=1879762]: |
0ms |
get settings: |
26ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
144ms |
get tp. blocked users: |
2ms |
others: | 367ms |
total: | 618ms |
0 / 0 |