| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Oracle > XML parsing and results joining |
| Автор: photozaz 7.10.2015, 18:28 |
| В таблице храниться структурированный xml из которого запросом достается значение run_id. Ключем к значению всегда является путь(статический) и значение атрибута pid тега parameter. Атрибут может иметь 2 значения: btId либо senderId. Каким образом можно проверять выбранные значения run_id на этапе селекта и подставлять ненулевое значение в результат? Например имеем 2 записи в таблице: в первой xml с атрибутом btId, во второй - senderId. Для того что бы выбрать run_id из xml выполняем extractValue(xmltype(r.ref_context), '/parameters/parameter[@pid="btId"]/typeAndValue/val') - для первой записи получим значение, а для второй - null. При выполнении extractValue(xmltype(r.ref_context), '/parameters/parameter[@pid="senderId"]/typeAndValue/val') имеем противоположные результаты. Вопрос состоит в том как смержить результаы результаты и вместо "value1" | null | ... null | "value2" | ... получить "value1" | ... "value2" | ... Пример запроса: SELECT extractValue(xmltype(r.ref_context), '/parameters/parameter[@pid="btId"]/typeAndValue/val') as run_id, extractValue(xmltype(r.ref_context), '/parameters/parameter[@pid="senderId"]/typeAndValue/val') as run_id, sender_run_id, r.id, r.CREATION_TIMESTAMP_UTC, r.UPDATED_TIMESTAMP_UTC, r.WORKFLOW_ID FROM content r |
| Автор: Zloxa 7.10.2015, 20:57 |
| https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions023.htm |
| Автор: photozaz 8.10.2015, 10:20 | ||
Спасибо. То, что доктор прописал |