How to Create a XML Document? | SQL Server Performance Forums

SQL Server Performance Forum – Threads Archive

How to Create a XML Document?

Hi guys,
I have a problem which is as follows……………
I have to create a XML document on disc. The data comes from a table.
The document is saved as a XML file……
How do I do this…………. ? For example : SELECT Customers.CustomerID, ContactName, CompanyName,
Orders.CustomerID, OrderDate
FROM Customers, Orders
WHERE Customers.CustomerID = Orders.CustomerID
AND (Customers.CustomerID = N’ALFKI’
OR Customers.CustomerID = N’XYZAA’)
ORDER BY Customers.CustomerID
FOR XML AUTO How can I save the output of this in an XML file on Disc?
Can I use sp_xml_preparedoc? If yes then how?
Thanks in advance.
Durgesh.
http://www.informit.com/guides/content.asp?g=sqlserver&seqNum=124&rl=1 Satya SKJ
Moderator
http://www.SQL-Server-Performance.Com/forum
This posting is provided “AS IS” with no rights for the sake of knowledge sharing.
Thanks Ssatya,<br />That link was useful.<br />But i want to create an XML and write the file on ot a disl and then send it as an attachment.<br /><br />This is how i have accomplished it below…………….I hope this also helps others………..<br /><pre id="code"><font face="courier" size="2" id="code"><br />SELECT @XMLTextHeader = ‘&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;<br />&lt;Batch&gt;'<br /><br />/* WRITE THE HEADER XML IN THE FILE */<br />EXECUTE @OLEResult = sp_OAMethod @FileID, ‘WriteLine’, Null, @XMLTextHeader <br />IF @OLEResult &lt;&gt; 0 PRINT ‘WriteLine’ <br /><br /><br />SELECT @XMLTextFooter = ‘&lt;/Batch&gt;'<br />SELECT @SQLSTR = ”<br /><br /><br />DECLARE CreateXMLText CURSOR LOCAL FOR<br />SELECT<br />TOP 5<br />ISNULL(O.TestNumberID,0),<br />ISNULL(O.OrderID,0),<br />ISNULL(A.OrderDate,0) ,<br />ISNULL(OC.CompanyName,”),<br />ISNULL(OC.City,”),<br />ISNULL((SELECT StateDesc FROM States S WHERE S.StateID = OC.StateID),”) AS State,<br />ISNULL(OC.PostalCode,0) ,<br />ISNULL(OC.CompanyName,”),<br />ISNULL(O.Number,”) ,<br />ISNULL(OC.Phone,0),<br />ISNULL(A.OrderRef2,”) <br />FROM <br />OCM_CentricVoiceOrder_TestNumbers O<br />INNER JOIN<br />AssetOrder A<br />ON<br />O.OrderID = A.AssetOrderID<br />INNER JOIN <br />OCM_OrderCustomers OC<br />ON <br />OC.OrderID = A.AssetOrderID<br />WHERE <br />UPPER(TestedToLevel3) = ‘NO'<br /><br />OPEN CreateXMLText<br />FETCH NEXT FROM CreateXMLText INTO @Cur_TestNumberID ,@Cur_ExternalOrderID ,@Cur_CustomerRequestedDate , @Cur_BusinessName , <br />@Cur_City , @Cur_State , @Cur_ZipCode , @Cur_CustomerName , <br />@Cur_StartNumber ,@Cur_BillingPhoneNumber ,@Cur_LetterOfAuthDate <br /><br />WHILE (@@FETCH_STATUS = 0)<br />BEGIN<br />–SELECT @SQLSTR = @SQLSTR +<br />SELECT @SQLSTR = ‘&lt;LineItem&gt;<br />&lt;LineItemHeader&gt;<br />&lt;orderAction&gt;Install&lt;/orderAction&gt;<br />&lt;orderType&gt;New&lt;/orderType&gt;<br />&lt;externalOrderId&gt; ‘+ @Cur_ExternalOrderID +’ &lt;/externalOrderId&gt;<br />&lt<img src=’/community/emoticons/emotion-4.gif’ alt=’;p’ />roductCode&gt;2042&lt;/productCode&gt;<br />&lt;customerRequestedDate&gt;’+ @Cur_CustomerRequestedDate +’&lt;/customerRequestedDate&gt;<br />&lt;/LineItemHeader&gt;<br />&lt;Subscriber&gt;<br />&lt;customerTypeIndicator&gt;B&lt;/customerTypeIndicator&gt;<br />&lt;businessName&gt;’+ @Cur_BusinessName +’&lt;/businessName&gt;<br />&lt;ServiceAddress&gt;<br />&lt;streetNum&gt;402&lt;/streetNum&gt;<br />&lt<img src=’/community/emoticons/emotion-4.gif’ alt=’;p’ />reDirectional&gt;E&lt;/preDirectional&gt;<br />&lt;streetName&gt;Market&lt;/streetName&gt;<br />&lt;streetSuffix&gt;St&lt;/streetSuffix&gt;<br />&lt;city&gt;’+ @Cur_City +’&lt;/city&gt;<br />&lt;state&gt;’+ @Cur_State +’&lt;/state&gt;<br />&lt;zipCode&gt;’+ @Cur_ZipCode +’&lt;/zipCode&gt;<br />&lt;/ServiceAddress&gt;<br />&lt;/Subscriber&gt;<br />&lt;LnpRequest&gt;<br />&lt;DirectoryListingRequest&gt;<br />&lt;directoryListAction&gt;Keep&lt;/directoryListAction&gt;<br />&lt;/DirectoryListingRequest&gt;<br />&lt;CnamInformation&gt;<br />&lt;blockCustomerName&gt;false&lt;/blockCustomerName&gt;<br />&lt;customerName&gt;’+ @Cur_CustomerName +’&lt;/customerName&gt;<br />&lt;/CnamInformation&gt;<br />&lt;Wtn&gt;<br />&lt;npa&gt;””&lt;/npa&gt;<br />&lt;nxx&gt;””&lt;/nxx&gt;<br />&lt;tnStartNumber&gt;’[email protected]_StartNumber+’&lt;/tnStartNumber&gt;<br />&lt;/Wtn&gt;<br />&lt;billingTelephoneNumber&gt;’[email protected]_BillingPhoneNumber+’&lt;/billingTelephoneNumber&gt;<br />&lt;lnpLetterOfAuthorization&gt;true&lt;/lnpLetterOfAuthorization&gt;<br />&lt;lnpLetterOfAuthorizationDate&gt;’[email protected]_LetterOfAuthDate+’&lt;/lnpLetterOfAuthorizationDate&gt;<br />&lt;TestDirection&gt;WirelineToWireline&lt;/TestDirection&gt;<br />&lt;/LnpRequest&gt;<br />&lt;LineItemResult/&gt;<br />&lt;/LineItem&gt;'<br /><br />UPDATE OCM_CentricVoiceOrder_TestNumbers SET TestedToLevel3 = ‘Yes’ WHERE TestNumberID = @Cur_TestNumberID AND UPPER(TestedToLevel3) = ‘NO'<br /><br />/* WRITE THE DATE INTO THE XML FILE */<br />EXECUTE @OLEResult = sp_OAMethod @FileID, ‘WriteLine’, Null, @SQLSTR<br />IF @OLEResult &lt;&gt; 0 PRINT ‘WriteLine’ <br /><br />FETCH NEXT FROM CreateXMLText INTO @Cur_TestNumberID ,@Cur_ExternalOrderID ,@Cur_CustomerRequestedDate , @Cur_BusinessName , <br />@Cur_City , @Cur_State , @Cur_ZipCode , @Cur_CustomerName , <br />@Cur_StartNumber ,@Cur_BillingPhoneNumber ,@Cur_LetterOfAuthDate <br />END<br />CLOSE CreateXMLText<br />DEALLOCATE CreateXMLText<br /><br />/*<br />IF @SQLSTR &lt;&gt; ”<br />SELECT @SQLSTR = @XMLTextHeader + @SQLSTR + @XMLTextFooter <br />*/<br /><br />/* WRITE THE FOOTER INTO THE XML FILE */<br />EXECUTE @OLEResult = sp_OAMethod @FileID, ‘WriteLine’, Null, @XMLTextFooter<br />IF @OLEResult &lt;&gt; 0 PRINT ‘WriteLine’ <br /><br />/* CLOSE THE FILE AND FILE HANDLE */<br />EXECUTE @OLEResult = sp_OADestroy @FileID <br />EXECUTE @OLEResult = sp_OADestroy @FS<br />–PRINT @SQLSTR<br /><br />DECLARE @Rc INT , @subject NVARCHAR(100) , @recipients NVARCHAR(500)<br />SELECT @subject = ‘TestToLevel3 Mail'<br /><br />SELECT @recipients = StringValue FROM TestConfigurations WHERE TestID = 36 AND ConfigurationKey = ‘TestToLevel3Address'<br /><br />IF @SQLSTR &lt;&gt; ”<br />EXEC @Rc = master..xp_sendmail @recipients = @recipients , @message = @subject , @subject = @subject ,@[email protected]<br /><br /><br />IF @Rc &lt;&gt; 0<br />SELECT ‘Error Sending Mail'<br /><br /></font id="code"></pre id="code"><br />Durgesh.
Apprecitate your workaround, that can help others. Satya SKJ
Moderator
http://www.SQL-Server-Performance.Com/forum
This posting is provided “AS IS” with no rights for the sake of knowledge sharing.
]]>