आइए XML बनाने के लिए एक उदाहरण पर विचार करें:
CREATE PROC GenerateXMLproc
AS
SELECT [Name], ProductNumber, Color
FROM dbo.Product
FOR XML raw(‘Product’), elements, root(‘Products’)
अब हम इस XML डेटा को सेव करने के लिए ऊपर बताए गए विकल्पों पर चर्चा करेंगे:
- सीएलआर संग्रहित प्रक्रिया का उपयोग करना: इस विधि में हम एक सीएलआर संग्रहीत प्रक्रिया बना सकते हैं जो एक्सएमएल डेटा उत्पन्न, फ़ाइल का नाम और फ़ाइल का स्थान इनपुट पैरामीटर के रूप में ले जाएगा। और फिर यह उस XML को आवश्यकता के अनुसार संसाधित कर सकता है और उस XML फ़ाइल को वांछित स्थान पर सहेज सकता है।
सीएलआर संग्रहित प्रक्रिया बनाना:
[Microsoft.SqlServer.Server.SqlProcedure]
public static void SaveXMLOutput(SqlXml XmlData, SqlString Filename)
{
//Save the XML data being passed to the SP to a file location
//specify the name of the file suppiled to the SP
XmlDocument xmlDoc = new XmlDocument();
SqlPipe output = SqlContext.Pipe;
xmlDoc.LoadXml(XmlData.Value);
xmlDoc.Save(Filename.Value);
}
CREATE ASSEMBLY SaveXMLOutputAssembly
from ‘C:\Temp\SaveXMLOutput.dll’
WITH PERMISSION_SET = EXTERNAL_ACCESS
आयातित DLL/असेंबली से संग्रहीत कार्यविधि बनाना:
CREATE PROCEDURE SaveXMLOutput
@xmldata XML,
@filename nvarchar(1024)
AS
EXTERNAL NAME SaveXMLOutputAssembly.[XMLOutput].SaveXMLOutput
execute SaveXMLOutput ‘Pass the XML Data generated from other SP’
,‘ C:\Temp\MyXML.xml’