Как насчет Отладчика. Повреждение () в первой строке?
По моему опыту, DBMS_XMLGEN хорош для быстрого и грязного преобразования данных в XML, но мне это никогда не нравилось, потому что вам нужно передавать SQL в виде строки. Кроме того, ваш контроль над именами элементов и структурой ROWSET / ROW сильно ограничен.
Функции XML чрезвычайно удобны и мне больше всего нравятся, если вы имеете дело с относительно простыми структурами. Когда, например, вы попадаете на несколько уровней XMLAgg, я обнаруживаю, что это быстро превращается в запутанный беспорядок.
XMLDOM - самый гибкий способ создания XML, особенно если структура более сложная или задействована итеративная логика. Основным недостатком здесь является то, что это, по сути, оболочка вокруг Java DOM, где большинство методов принимают входные данные DOMNode, но PL / SQL не поддерживает полиморфизм напрямую,
Вот хорошее обсуждение некоторых доступных вам вариантов:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0 :: :: P11_QUESTION_ID: 4980337843276
Также, если вы выполните поиск по запросу «Шон Диллон» на AskTom, вы получите хорошую коллекцию статей с подробным описанием различных проблем и решений с использованием XML в Oracle.
Что ж, я никогда не использовал Oracle для создания очень сложных XML-документов, но использовать DBMS_XMLDOC довольно просто.
Вы можете увидеть скелет здесь (и ] здесь , только код pl / sql). Также используйте Google Code Search, наверняка есть что найти.
Тогда есть ссылка DBMS_XMLDOM , которая помогает, даже если документация довольно сухая.
Убедитесь, что вы также прочитали эти два сообщения:
http://www.liberidu.com/blog/? p = 365
http://www.liberidu.com/blog/?p=369
В качестве альтернативы вы можете изучить создание XML с помощью хранимой процедуры Java.
Обычно я использую xml-функции ( XMLElement
, XMLForest
и т. Д.), Потому что у меня есть контроль над XSD. Я заставляю XSD в целом соответствовать структуре документов, так что вещи хорошо сочетаются друг с другом.
Если схема, с которой вы пытаетесь работать, исключительно сложная или напуганная , вам следует рассмотреть DBMS_XMLGEN
или методы DOM
.