![]() |
|
Модераторы: LSD |
![]()
|
|
| day2030 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 24.9.2009 Репутация: нет Всего: нет |
Всем доброго времени суток.
Подскажите пожалуйста решение следующей проблемы если такое возможно. В коде pl/sql организован цикл. В теле цикла идет выборка из xml файла, каждый xml файл хранится в таблице. Значение xmlquery нужно получать по номеру узла, а номер узла это переменная j определенная в цикле:
Данный код не работает т.к. перменная j определена в цикле а не в запросе XMLQuery. Т.е. если j заменить на конкретное значение то все работает: for j in 1..x loop select XMLQuery('//DocBatch[position()=1]' passing xmltype(b.filexml_r) returning content).getStringVal() into mytest from table_car b where b.keyxml_r = keyxml_r; end loop; [/code] Как передать в XMLQuery переменную определенную в коде и вообще возможно ли это???? Заранее спасибо. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
в лоб, конкатенацией?
Добавлено @ 10:33 но так вобще такой разбор выглядит странным. Что мешает распарсить xml одним XMLTable и просто обойти курсор? Это сообщение отредактировал(а) Zloxa - 24.10.2012, 10:37 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| day2030 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 24.9.2009 Репутация: нет Всего: нет |
Попробовала, но не работает:
Выходит ошибка: pl/aql: ora-19109 returning keyword expected |
|||
|
||||
| Zloxa |
|
||||||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
Добавлено @ 11:00 Передать выражение через бинд
Обратите внимание, что getStringVal возвращает вам текстовое представление XML фрагмента возвращенного XMLQuery. По этой причине символ меньше не преобразовалсяю Для того, чтобы извлечь значение, используйте extractValue
Это сообщение отредактировал(а) Zloxa - 24.10.2012, 11:03 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
||||||
|
|||||||
| day2030 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 24.9.2009 Репутация: нет Всего: нет |
Спасибо большое, сейчас поробую оптимизировать подсказку под свои нужды. Просто сам xml очень сожный и там много вложений, у DocBatch есть вложения значения которых мне как раз и нужны а самих элементов DocBatch очень много, поэтому я и хотела последовательно работать с каждым.
|
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
XQuery - весьма развитый язык и, когда его имплементация не глючит, позволяет обработать конструкции практически любой сложности. Увы, в оракле имплементация весьма глючна. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |