:: Не фоксом единым
Oracle + XML
Pekpytep

Сообщений: 727
Откуда: Луганск
Дата регистрации: 19.10.2010
Всем привет.
Формирую xml запросом, типа
with t$all as
(
select
'RUR' currency_id
from dual
)
SELECT
XMLELEMENT("params", XMLELEMENT("param", XMLATTRIBUTES('CURRENCY' AS "key", nvl(currency_id, '#') AS "value"))) xml_data
from t$all;
Возникло 2 вопроса:
1. Есть ли возможность на лету изменить закрывающий тег с <param key="CURRENCY" value="RUR"></param> на <param key="CURRENCY" value="RUR"/>?
Сейчас приходится дополнительно заменять с помощью replace() уже после формирования xml
2. Как, в случае если currency_id is null, вывести <param key="CURRENCY" value="" />?
Если указать
XMLELEMENT("params", XMLELEMENT("param", XMLATTRIBUTES('CURRENCY' AS "key", nvl(currency_id, '""') AS "value"))) xml_data
то на выходе получается
value="&quot;&quot;"
из-за этого приходится постфактум, опять же, мудрить с replace(xml_data, '#', ''). Может есть более простой способ?



Исправлено 1 раз(а). Последнее : Pekpytep, 30.10.17 17:25
Ratings: 0 negative/0 positive
Re: Oracle + XML
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
stackoverflow.com

stackoverflow.com

P.S. "Решать" вопрос с закрывающим тегом нужно только для особо тупых принимателей твоего XML-я, т.к. семантически ("по смыслу") они эквивалентны - т.е. передают одну и ту же информацию. Аналогично и с отступами и переносами строк - да, для идиотов не понимающих в XML может оказаться необходимым и это специально делать... Адекватному парсеру (и использующему его разработчику) без разницы и на форматирование и на способ закрытия тега.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Oracle + XML
Pekpytep

Сообщений: 727
Откуда: Луганск
Дата регистрации: 19.10.2010
Не понимаю... меня шо, в гугле забанили?
А, не... все нормально. Я просто не смог внятно поисковый запрос сформулировать.
Спасибо, то что доктор прописал.
Ratings: 0 negative/0 positive
Re: Oracle + XML
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
P.S. В зависимости от ... может оказаться более правильным использовать другие средства генерации XML-я, например через пакеты DBMS_XMLDOM или DBMS_XMLGEN.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Oracle + XML
S-type

Сообщений: 2969
Дата регистрации: 24.04.2004
Igor Korolyov
stackoverflow.com

По первой ссылке высвечивается

[attachment 28473 s2.png]

Попытался выполнить, вижу:

[attachment 28474 s1.png]

Чего то ему не хватает. Пробовал и в 11, и в 12.
Ratings: 0 negative/0 positive
Re: Oracle + XML
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Понятия не имею - видать что-то с XML поддержкой сломано в БД. У меня работает и на 11 и на 12 версиях... Через другую тулзу - тот же sqlplus не пробовал?


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Oracle + XML
S-type

Сообщений: 2969
Дата регистрации: 24.04.2004
Наверное, так и есть. Погуглил про ORA-215000 - ни чего не понятно...
Ratings: 0 negative/0 positive
Re: Oracle + XML
Pekpytep

Сообщений: 727
Откуда: Луганск
Дата регистрации: 19.10.2010
Igor Korolyov
P.S. В зависимости от ... может оказаться более правильным использовать другие средства генерации XML-я, например через пакеты DBMS_XMLDOM или DBMS_XMLGEN.
Не, ну так то я в курсе, что у ораклы более 2 десятков разнообразных [url="http://docs.oracle.com/database/122/ADXDB/PLSQL-APIs-for-XMLType.htm#ADXDB0110"]api для работы с xml[/url]. Правда, часть из них уже устарела и сами разработчики не рекомендуют их использовать. В курсе, что XQuery - наше все, но уже думалки не хватает освоить. Может быть, в другой жизни. Для простейших случаев хватит и этого.
Ratings: 0 negative/0 positive
Re: Oracle + XML
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Нет у них "панацеи" - для разных задач (разные объёмы, "динамичность" схем данных, собственно наличие/отсутствие схем и ещё 100500 всяких "если") разные тулзы удобнее/эффективнее/проще. Конечно, смотреть в сторону альтернатив следует лишь если совсем затык с текущей реализацией вышел - либо не работает, либо очень уж медленно получается


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 4 (Гостей: 4)

© 2000-2024 Fox Club 
Яндекс.Метрика