|
|
|
Заменить connect by на sql
|
|||
|---|---|---|---|
|
#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. SELECT program_id FROM program WHERE program_level = 1 START WITH program_id = 3 CONNECT BY PRIOR parent_id = program_id; Надо его заменить на другой, без иерархии. Пытаюсь сделать: with c ( program_id, program_level) as (select program_id, program_level from program p WHERE program_level = 1 union all select c.program_id program_id, c.program_level program_level from program p join c on p.program_level = c.program_level and c.program_id = 3 ) select program_id from c Тогда получается несколько строк. Если убрать c.program_id = 3 из второй выборки и поставить условием основного запроса, тогда ошибка: ORA-32044: cycle detected while executing recursive WITH query как сделать? спасибо большое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2018, 19:09 |
|
||
|
Заменить connect by на sql
|
|||
|---|---|---|---|
|
#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. 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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2018, 19:49 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39673383&tid=1883733]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
76ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 383ms |

| 0 / 0 |
