Mam tabelę z kolumną XMLTYPE o nazwie "InvoiceXML".Jak usunąć nazwę kolumny podczas wybierania z kolumny XMLTYPE przy użyciu FOR XML PATH
Dane w tej kolumnie jest XML w postaci:
<Invoice CustomerNum="1234" >
<CustomDeliveryDetails />
</Invoice>
Kiedy zrobić
SELECT ... FOR XML PATH(''), ROOT('Invoices')
I skończyć z:
<Invoices>
<InvoiceXML>
<Invoice CustomerNum="1234" >
<CustomDeliveryDetails />
</Invoice>
</InvoiceXML>
</Invoices>
Jak mogę zatrzymać nazwa kolumny InvoiceXML pojawia się w danych wyjściowych?
Nie myśl, że możesz łączyć łańcuch bezpośrednio z kolumną XML. Musisz podwoić obsadę: 'cast (cast (InvoiceXML as nvarchar (max)) + '' jako XML)' –
+1 Po dalszej analizie myślę, że można ją jeszcze bardziej uprościć. Wygląda na to, że 'cast (InvoiceXML as XML)' jest wystarczający. –
Zgłaszałbym, gdybym miał wystarczającą liczbę powtórzeń, ponieważ rzut na nvarchar (max) zasadniczo przełamuje typ XML ze względu na ograniczenia długości. varchar (max), nvarchar (max) i xml mogą przechowywać 2 GB, ale nvarchar używa 2x storge na znak. Odniesienia: http://technet.microsoft.com/en-us/library/ms186939.aspx i http://msdn.microsoft.com/en-us/library/ms187339.aspx – rainabba