2017-04-05 67 views
2

我有一个工作簿中有两个Excel表存储在SFTPlocation。我需要从Excel工作表读取数据并将数据转换为XML。该XML将传递给存储过程并将该数据插入到表中。它运行良好,如果我有一张工作簿,但这个工作簿有两个不同的Excel表,我需要在单个表中插入数据。当我从第一片材读取数据我得到的XML是这样我需要通过XML节点存储过程为两个不同的Excel表

<NewDataSet> 
<Sheet1> 
</Sheet1> 
<Sheet1> 
</Sheet1> 
</NewDataSet> 

所以我使用存储的过程,其中i需要通过上面的XML的XML节点。这就像我在这里通过NewDataSet/Sheet1

SELECT DISTINCT 
'Product' = x.v.value('Product[1]','nvarchar(50)') 
into #TempTable 
from @XMLDataRecord.nodes('NewDataSet/Sheet1') x(v) 

所以这是第一张纸的整个过程。 当我从第二片材读取我得到的XML是

<NewDataSet> 
<Sheet2> 
</Sheet2> 
<Sheet2> 
</Sheet2> 
</NewDataSet> 

现在,当此XML将被传递到存储过程我需要此XML的XML节点传递到存储过程作为NewDataSet /图纸2。问题是我将如何在存储过程中传递NewDataSet/Sheet2,其中我应该第一次使用NewDataSet/Sheet1,然后动态地第二次使用NewDataSet/Sheet2。

+2

当您从string2中的sheet2中获取XML时,您可以使用字符串替换并将“sheet2”替换为“sheet1”。 我们需要一个新的变量temp,因为字符串是不可变的。 – Hitsa00

+0

thanks.hey它的工作。你发布它作为答案。 –

回答

2

当您从string2中的sheet2中获取XML时,您可以使用字符串替换并将“sheet2”替换为“sheet1”。由于字符串是不可变的,我们需要一个新的变量temp。