Fetch data from XML file and insert into SQL Database
Step1. Create a Stored procedure in Sql database which takes one input parameter and one output parameter which returns Success /Failure
Create PROCEDURE [dbo].[SP_Insert_MultipleRowsDial]
(
@xmlData XML ,
@retValue varchar(20) OUTPUT
)
AS
BEGIN
SET @retValue='Failed';
INSERT INTO [Dial](h_value,dial,x,y,z)
SELECT
COALESCE([Table].[Column].value('h_value[1]', '[float]'),0) as 'h_value',
[Table].[Column].value('dial [1]', '[float]') as ' dial ',
[Table].[Column].value(' x[1]', '[float]') as 'x',
[Table].[Column].value(' y [1]', '[float]') as 'y',
[Table].[Column].value(' z [1]', '[float]') as 'z'
FROM @xmlData.nodes('/ NewDataSet / Table') as [Table]([Column])
IF(@@ROWCOUNT > 0 )
SET @retValue='SUCCESS';
print @retValue;
END
Step2.Execute the Stored Procedure.
Step3.Execute the above Stored Procedure by passing the parameters.
Declare @retValue1 varchar(50);
Declare @XmlStr XML;
SET @XmlStr='<NewDataSet>-<Table><h_value>1</h_value><dial>0</dial><x>100</x><y>0</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>1</dial><x>96.6666666666667</x><y>3.33333333333333</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>2</dial><x>93.3333333333333</x><y>6.66666666666667</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>3</dial><x>90</x><y>10</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>4</dial><x>86.6666666666667</x><y>13.3333333333333</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>5</dial><x>83.3333333333334</x><y>16.6666666666667</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>6</dial><x>80</x><y>20</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>7</dial><x>76.6666666666667</x><y>23.3333333333333</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>8</dial><x>73.3333333333334</x><y>26.6666666666667</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>9</dial><x>70</x><y>30</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>10</dial><x>66.6666666666667</x><y>33.3333333333333</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>11</dial><x>63.3333333333334</x><y>36.6666666666667</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>12</dial><x>60</x><y>40</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>13</dial><x>56.6666666666667</x><y>43.3333333333333</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>14</dial><x>53.3333333333334</x><y>46.6666666666667</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>15</dial><x>50</x><y>50</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>16</dial><x>46.6666666666667</x><y>53.3333333333333</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>17</dial><x>43.3333333333334</x><y>56.6666666666667</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>18</dial><x>40</x><y>60</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>19</dial><x>36.6666666666667</x><y>63.3333333333334</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>20</dial><x>33.3333333333334</x><y>66.6666666666667</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>21</dial><x>30</x><y>70</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>22</dial><x>26.6666666666667</x><y>73.3333333333333</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>23</dial><x>23.3333333333334</x><y>76.6666666666667</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>24</dial><x>20</x><y>80</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>25</dial><x>16.6666666666667</x><y>83.3333333333333</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>26</dial><x>13.3333333333334</x><y>86.6666666666667</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>27</dial><x>10</x><y>90</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>28</dial><x>6.66666666666669</x><y>93.3333333333333</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>29</dial><x>3.33333333333336</x><y>96.6666666666666</y><z>1</z></Table>-<Table><h_value>1</h_value><dial>30</dial><x>0</x><y>100</y><z>1</z></Table></NewDataSet>';
EXEC [SP_Insert_MultipleRowsDial] @xmlData=@XmlStr,@retValue=@retValue1 OUTPUT
print @retValue1
Step4.For the output,execute bellow command.
Select * from Dial
0 Comment(s)