March 30, 2015 at 3:49 am
Hi All,
The Goal
I need to create an XML document from a SELECT and store that in a folder on the network.
I have a basic select statement, works fine.
I Then add at the bottom - "FOR XML PATH(''), ROOT('SALES')" - which again works fine when I execute.
If I create a view ( without the XML statement ) - that works fine and creates a view.
If I add the "FOR XML PATH(''), ROOT('SALES')" at the end and execute the "ALTER VIEW", I get the following message.
Msg 4511, Level 16, State 1, Procedure View_SLG_FinanceForecast_ActualSales_XML, Line 5
Create View or Function failed because no column name was specified for column 1.
Should I create the view as XML format - or should I use a stored procedure to drop the output out as XML via BCP ?
Any help would be appreciated.
Thanks
________________________________________________________________________________________________
Regards
Steve
SQL 2008 DBA/DBD - MCTS/MCITP
Please don't trust me, test the solutions I give you before using them.
March 30, 2015 at 4:37 am
You need to give an alias to the whole XML document you're selecting:
SELECT 'A'
FOR XML PATH('')
outputs this:
XML_F52E2B61-18A1-11d1-B105-00805F49916B
-----------------------------------------
A
(1 row(s) affected)
With an alias you get this:
SELECT theDoc = (
SELECT 'A'
FOR XML PATH('')
)
outputs this:
theDoc
-------------------
A
(1 row(s) affected)
-- Gianluca Sartori
March 30, 2015 at 4:39 am
SteveEClarke (3/30/2015)
Hi All,Should I create the view as XML format - or should I use a stored procedure to drop the output out as XML via BCP ?
The latter seems much more sensible to me. You can use a stored procedure or query directly from the application using FOR XML.
-- Gianluca Sartori
March 30, 2015 at 8:20 am
Thanks for the help.
The views now work a treat -
What would be the best solution for generating an XML file in a specific folder, calling a stored procedure to run every hour ?
Thanks
________________________________________________________________________________________________
Regards
Steve
SQL 2008 DBA/DBD - MCTS/MCITP
Please don't trust me, test the solutions I give you before using them.
March 30, 2015 at 8:31 am
It really depends what you're after. If you want files in a folder every x minutes, you can use a powershell job.
-- Gianluca Sartori
March 31, 2015 at 2:28 am
That will be what I am after - I think I have that bit all sorted now.
Just one more question -
With Regard to the XML format, Is it possible to have Child Nodes as well as the root node ?
So ;
<?xml version="1.0"?>
<SalesData>
<Customer>NOV001 </Customer>
<Branch>ME</Branch>
<Year>2014</Year>
<Month>1</Month>
<NetSalesValue>2419.20</NetSalesValue>
<Customer>BOO001 </Customer>
<Branch>RH</Branch>
<Year>2014</Year>
<Month>1</Month>
<NetSalesValue>2419.20</NetSalesValue>
</SalesData>
Would look like this;
<?xml version="1.0"?>
<SalesData>
<SalesDataItem>
<Customer>NOV001 </Customer>
<Branch>ME</Branch>
<Year>2014</Year>
<Month>1</Month>
<NetSalesValue>2419.20</NetSalesValue>
</SalesDataItem >
<SalesDataItem>
<Customer>BOO001 </Customer>
<Branch>RH</Branch>
<Year>2014</Year>
<Month>1</Month>
<NetSalesValue>2419.20</NetSalesValue>
<SalesDataItem>
</SalesData>
________________________________________________________________________________________________
Regards
Steve
SQL 2008 DBA/DBD - MCTS/MCITP
Please don't trust me, test the solutions I give you before using them.
March 31, 2015 at 6:24 am
Sorry - have answered this one now.
I am struggling getting the output to work within "BCP" - keeps asking for a format file !?
________________________________________________________________________________________________
Regards
Steve
SQL 2008 DBA/DBD - MCTS/MCITP
Please don't trust me, test the solutions I give you before using them.
March 31, 2015 at 7:15 am
Sorry for the late reply. Which command line parameters are you using for BCP?
-- Gianluca Sartori
March 31, 2015 at 7:19 am
I think I am getting there - having figured out the bcp command line now.
So I have created an xml format file and specified that when creating the data file. Once created - I try to load this within and XML Editor and it states that the first line is incorrect;
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
--------------------------------------------------------------------------------
A semi colon character was expected. Error processing resource 'file://XMLExport/StockCodes.xml'.
________________________________________________________________________________________________
Regards
Steve
SQL 2008 DBA/DBD - MCTS/MCITP
Please don't trust me, test the solutions I give you before using them.
March 31, 2015 at 7:21 am
Apologies -
Command line;
Create format file;
bcp [SysproCompanyS].[dbo].[View_SLG_FinanceForecast_StockCodes] format nul -n -f C:\XMLExport\StockCodeFormat.xml -x -T
Create data file;
bcp [SysproCompanyS].[dbo].[View_SLG_FinanceForecast_StockCodes] out c:\xmlexport\StockCodes.xml -f C:\XMLExport\StockCodeFormat.xml -T
________________________________________________________________________________________________
Regards
Steve
SQL 2008 DBA/DBD - MCTS/MCITP
Please don't trust me, test the solutions I give you before using them.
March 31, 2015 at 7:34 am
SteveEClarke (3/31/2015)
Apologies -Command line;
Create format file;
bcp [SysproCompanyS].[dbo].[View_SLG_FinanceForecast_StockCodes] format nul -n -f C:\XMLExport\StockCodeFormat.xml -x -T
Create data file;
bcp [SysproCompanyS].[dbo].[View_SLG_FinanceForecast_StockCodes] out c:\xmlexport\StockCodes.xml -f C:\XMLExport\StockCodeFormat.xml -T -c
Try with character type format:
bcp [SysproCompanyS].[dbo].[View_SLG_FinanceForecast_StockCodes] out c:\xmlexport\StockCodes.xml -f C:\XMLExport\StockCodeFormat.xml -T -c
-- Gianluca Sartori
Viewing 11 posts - 1 through 10 (of 10 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy