Я написал пакет Oracle для запроса некоторых данных в XML, как показано ниже:
select
XMLSERIALIZE(DOCUMENT
xmlelement("QueryResults", XMLAttributes('Demographics And Relationships' as "title"),
xmlelement("Row",
xmlelement("field",XMLAttributes( 'Title' as "title"),pn.title),
xmlelement("field",XMLAttributes( 'First Names' as "title"),pn.first_names),
xmlelement("field",XMLAttributes( 'Last Name' as "title"), pn.last_name)
)
) as clob indent size = 2
) as XML
from people_names pn
, который возвращает:
<QueryResults title="Demographics And Relationships">
<Row>
<field title="Title">MR</field>
<field title="First Names">John</field>
<field title="Last Name">Smith</field>
<field title="Date of Birth">20/07/1990</field>
</Row>
</QueryResults>
, который я сейчас пытаюсь собратьверсия SQL-сервера того же пакета, но не может заставить его соответствовать выводу Oracle, который включает элемент ROW, чтобы покрыть каждую возвращаемую строку, тег поля, чтобы покрыть каждый элемент в строке, и псевдоним для имени столбца, который будет использоватьсяв качестве атрибута.
Я пробовал различные перестановки FOR XML EXPLICIT / RAW / AUTO и т. д. и может получить некоторые выходные данные, но не все.Может кто-нибудь предложить способ, как я могу сделать это с T-SQL?большое спасибо.