|
|
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Суть в следующем: из таблицы schema1.table1 я вытаскиваю переменную типа CLOB в CLOB_DATA, затем привожу её к типу XMLTYPE и называю XML_DATA. Затем мне нужно вытащить внутренний элемент 'tagFirstInnerXML' как XML и назвать его INNER_XML. Формат XML-ки имеет следующую структуру: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Как можно видеть, элемент tagSecondInnerXML вложен в элемент tagFirstInnerXML, а он, в свою очередь, в tagMain. Для разбора написан код следующего содержания: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Но при попытке его выполнить возникает ошибка: авторORA-00933: неверное завершение SQL-предложения Подскажите, как правильно переписать код, чтобы получить на выходе внутреннюю XML-ку tagFirstInnerXML ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 09:44 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
Считаю необходимым пояснить, для чего это нужно. Вообще, моя xml-ка может внутри элемента tagMain содержать какое угодно количество элементов tagFirstInnerXML. А они, в свою очередь, внутри себя могут содержать какое угодно количество элементов tagSecondInnerXML. Например, xml-ка может иметь вид: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 09:50 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
ultrasonic7как правильно переписать кодНачни с изучения синтаксиса ораклового sql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 09:51 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
Мне нужно функцией XMLTABLE распарсить сначала внешние элементы tagFirstInnerXML, а затем внутренние элементы tagSecondInnerXML. Потом я хочу получить декартово произведение получившихся таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 09:53 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
ыйд куаукутсу А более дельные советы будут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 09:55 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
ultrasonic7Считаю необходимым пояснить, для чего это нужно Считаю необходимым предложить прочитать документацию , чтобы не задавать идиотских вопросов, почему полностью кривой код не работает. Код: plsql 1. 2. 3. Лермонтов М.Ю.Смешались в кучу кони, люди и залпы тысячи орудий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 09:55 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
env, спасибо за лестный отзыв, но всё-таки что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 10:07 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
Доку я читал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 10:07 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
Функцию XMLTABLE применял много раз, но в процедурах PL/SQL. Теперь мне надо написать полностью SQL-ный запрос и на выходе получить таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 10:10 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
Да, я не совсем правильно написал. Надо было копипастом из своего кода, документацию месяц назад читал, немного подзабыл). Теперь выглядит вот так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 10:17 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
ultrasonic7документацию месяц назад читалМолодец! Осталось перечитать про passing. Будем с нетерпением ждать следующих твоих синтаксических успехов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 10:33 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
Осталась одна проблема. Несмотря на то, что после выполнения второго запроса получается только одна запись с одним полем, она рассматривается Ораклом как табличный результат. А конструкция PASSING ждет XMLTYPE. Сейчас появляется ошибка ORA-00904 (неправильное имя колонки/недопустимый идентификатор). Может кто-то без комментариев к качеству кода подсказать, как правильно передать параметр в конструкцию PASSING ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 10:40 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
ultrasonic7Может кто-то без комментариев к качеству кода подсказать stfw FLOWR xquery Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 10:45 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
Если игнорировать рекламу, то неплохой для понимания мануал по FLOWR есть тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 10:55 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
На первый взгляд, довольно мощный язык. Сорри за глупый вопрос, а без FLWOR документ с двумя дочерними элементами разобрать не получится? Или без него в наше время никуда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 11:04 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
ultrasonic7, Последовательно применяя xmltable/xmlquery например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 11:29 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
ultrasonic7, что-то типа такого Код: 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.11.2017, 11:41 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
envПоследовательно Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 11g ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 11:57 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
Elic, Чёт я перемудрил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 12:32 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
Оба варианта великолепны. Но на выходе получается таблица, где у каждого someFirstChild выводятся только его дочерние элементы. То есть так: Value1Value2FirstChild 1secondChild 11FirstChild 1secondChild 12FirstChild 2secondChild 21FirstChild 2secondChild 22 А мне нужно, чтобы каждое someFirstChild сопоставлялось с каждым someSecondChild. Как-то так: Value1Value2FirstChild 1secondChild 11FirstChild 1secondChild 12FirstChild 1secondChild 21FirstChild 1secondChild 22FirstChild 2secondChild 11FirstChild 2secondChild 12FirstChild 2secondChild 21FirstChild 2secondChild 22 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 13:51 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
ultrasonic7А мне нужно, чтобы каждое someFirstChild сопоставлялось с каждым someSecondChild.Дичь. Вариант env-а легко преобразуется в cross-join. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 13:57 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
ultrasonic7А мне нужно, чтобы каждое someFirstChild сопоставлялось с каждым someSecondChild. Как-то так: Value1Value2FirstChild 1secondChild 11FirstChild 1secondChild 12FirstChild 1secondChild 21FirstChild 1secondChild 22FirstChild 2secondChild 11FirstChild 2secondChild 12FirstChild 2secondChild 21FirstChild 2secondChild 22 xml тут не при чем, объедини множества и получишь то что хочешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 14:01 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
ultrasonic7, FLOWR Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 14:11 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
ElicenvПоследовательно Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 11g Проблемы по версиям: value1value2 secondChild 11 secondChild 12 secondChild 21 secondChild 22 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 14:17 |
|
||
|
ORA-00933 при парсинге XML
|
|||
|---|---|---|---|
|
#18+
ElicenvПоследовательно Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 11g Проблема с хождением назад, например на Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production value1 value2NULL secondChild 11NULL secondChild 12NULL secondChild 21NULL secondChild 22 Вангую что ни твой вариант ни ENV не подойдут так как ТС писал что А они, в свою очередь, внутри себя могут содержать какое угодно количество элементов tagSecondInnerXML Какое угодно количество это в том числе и ноль, minOccurs = 0 maxOccurs= unbounded ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2017, 14:25 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39561797&tid=1884809]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
4ms |
| others: | 229ms |
| total: | 372ms |

| 0 / 0 |
