|
|
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
Всем привет. Есть json содержащий иерархию каталогов. С течением времени depth может меняться, ключи известны: "name", "subfolders". Мне передают этот json, я должен распарсить его и залить в табличку с такой структурой: dir number , dir_parent number ,description varchar2 Не врубаюсь как это сделать, если глубина заведомо неизвестна. Натолкните на мысль или поделитесь примером, пожалуйста. Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 16:50 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
israelshamir, Пример JSONа приведи. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 16:53 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
SY, Код: javascript 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 16:55 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
israelshamir, даже лень писать. либо рекурсивный with либо рекурсивная же функция в зависимости от того где и что надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 17:11 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
israelshamir, Дальше сам допилишь: Код: 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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 19:08 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
Правда тут и выяснятся что JSON_TABLE в Oracle заточен на статику и в отличие от XMLTABLE не дает вытащить ничего длиннее VARCHAR2(4000), т.е. если есть "sub-JSON" пoльзуйся статическим NESTED PATH. Так-что если subfolders > 4000 байт то труба и придется парсить вручную. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 19:50 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
israelshamir, не надо мучиться с json - проще конвертнуть в xml и разобрать: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. пример Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 22:10 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
xtender Код: plsql 1. Ага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 07:26 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
SY, Спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 07:54 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
xtender, Спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 07:55 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
xtender, А что APEX уже лицензии не требует? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 13:44 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
SY, А что раньше требовало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 14:04 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
xtenderА что раньше требовало? APEX не пользую. Был уверен что требует. Сейчас посмотрел - требует только если нет лицензионной базы. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 14:37 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
SY Сейчас посмотрел - требует только если нет лицензионной базы. Ээээ... "покупая у нас APEX за деньги вы признаетесь, что используете нелицензионную БД"? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 15:39 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
xtender, Перерыл документацию, так и не понял, как работает xquery в случае с parent. './../../../name' - 4 уровня. Я добавил еще несколько уровней в JSON из примера, твой запрос парсит и их, хотя я ожидал увидеть NULL'ы Объясни, пожалуйста, как это работает, почему именно 4 уровня('./../../../name') указал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 22:40 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
israelshamirxtender, Перерыл документацию, так и не понял, как работает xquery в случае с parent. './../../../name' - 4 уровня. На 3 уровня вверх а не на 4. Чтобы это понять нужно посмотреть сгенерированный XML. Там будет что-то типа: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. T.e. если мы от текущего name (например folder1_1) поднимемся на './../../../name' то попадем на name папашки (folder1). SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 22:48 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
SY, SYНа 3 уровня вверх а не на 4. Здесь все прояснилось) Большое спасибо, SY! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2018, 08:10 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#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. Хочу получить fullpath. Поскольку xquery почти не знаю и в данный момент нет времени на изучение, решил использовать sys_connect_by_path. Не понимаю почему в результате в id_parent_dir null, fullpath'ы не построены. Но, если данные из cte2 залить в таблицу и уже на ее основе строить запрос, отрабатывает правильно. Грешу на: 1)Не знаю нюансов xmltable 2)Трансформации 3)Баг(?) Прошу помощи, ткните носом в доку, блог и т.д. или объясните, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 08:36 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
israelshamir3)Баг(?)да, но вообще не нужно их смешивать, достаточно xmltable: Код: 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. ps. я специально убрал этот длиннющий json и трансформацию в xmldata, чтобы не мешал читать параметры xmltable. Если хочешь можешь вернуть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 13:20 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
xtender, Какая красота... Огромное спасибо за помощь. Позже изучу SQL/XML, SQL/JSON, xquery. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 14:45 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
коллеги, apex_json как ставится? с админов требовать? у нас оракл честно купленный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2018, 15:52 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
Пусть ставят апекс, он с ним и придёт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2018, 17:52 |
|
||
|
распарсить json(глубина не известна), залить в таблицу
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2018, 18:03 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39661423&tid=1883847]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 511ms |

| 0 / 0 |
