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 = ‘<?xml version="1.0" encoding="UTF-8" standalone="yes"?><br /><Batch>'<br /><br />/* WRITE THE HEADER XML IN THE FILE */<br />EXECUTE @OLEResult = sp_OAMethod @FileID, ‘WriteLine’, Null, @XMLTextHeader <br />IF @OLEResult <> 0 PRINT ‘WriteLine’ <br /><br /><br />SELECT @XMLTextFooter = ‘</Batch>'<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 = ‘<LineItem><br /><LineItemHeader><br /><orderAction>Install</orderAction><br /><orderType>New</orderType><br /><externalOrderId> ‘+ @Cur_ExternalOrderID +’ </externalOrderId><br /><<img src=’/community/emoticons/emotion-4.gif’ alt=’;p’ />roductCode>2042</productCode><br /><customerRequestedDate>’+ @Cur_CustomerRequestedDate +’</customerRequestedDate><br /></LineItemHeader><br /><Subscriber><br /><customerTypeIndicator>B</customerTypeIndicator><br /><businessName>’+ @Cur_BusinessName +’</businessName><br /><ServiceAddress><br /><streetNum>402</streetNum><br /><<img src=’/community/emoticons/emotion-4.gif’ alt=’;p’ />reDirectional>E</preDirectional><br /><streetName>Market</streetName><br /><streetSuffix>St</streetSuffix><br /><city>’+ @Cur_City +’</city><br /><state>’+ @Cur_State +’</state><br /><zipCode>’+ @Cur_ZipCode +’</zipCode><br /></ServiceAddress><br /></Subscriber><br /><LnpRequest><br /><DirectoryListingRequest><br /><directoryListAction>Keep</directoryListAction><br /></DirectoryListingRequest><br /><CnamInformation><br /><blockCustomerName>false</blockCustomerName><br /><customerName>’+ @Cur_CustomerName +’</customerName><br /></CnamInformation><br /><Wtn><br /><npa>””</npa><br /><nxx>””</nxx><br /><tnStartNumber>’[email protected]_StartNumber+’</tnStartNumber><br /></Wtn><br /><billingTelephoneNumber>’[email protected]_BillingPhoneNumber+’</billingTelephoneNumber><br /><lnpLetterOfAuthorization>true</lnpLetterOfAuthorization><br /><lnpLetterOfAuthorizationDate>’[email protected]_LetterOfAuthDate+’</lnpLetterOfAuthorizationDate><br /><TestDirection>WirelineToWireline</TestDirection><br /></LnpRequest><br /><LineItemResult/><br /></LineItem>'<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 <> 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 <> ”<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 <> 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 <> ”<br />EXEC @Rc = master..xp_sendmail @recipients = @recipients , @message = @subject , @subject = @subject ,@[email protected]<br /><br /><br />IF @Rc <> 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.
]]>