2014-05-23 33 views
0

我有一個Java web服務,其在WSDL中的下列格式發送數據並調用存儲過程SQL插入記錄在SQL數據庫陣列中的SQL對象的存儲2008過程

<EmpID>2001</EmpID> 
<EmpLOCN>US</EmpLOCN> 
<Salary> 
<Salaryamt>2000</Salaryamt> 
<Salarytype>EU</Salarytype> 
<TAX> 
<Tax1>20</Tax1> 
<Tax2>2</Tax2> 
<TAX> 
</Salary> 
<Salary> 
<Salaryamt>4000</Salaryamt> 
<Salarytype>EU</Salarytype> 
<TAX> 
<Tax1>10</Tax1> 
<TAX> 
</Salary> 

從上述輸入我想SQL讀這一點,並用相同的員工ID

我如何在SQL讀這3個插入記錄和插入記錄

回答

0

我沒有看到你的XML第3行,但這裏是你如何可以在TSQL中讀取該XML:

DECLARE @x XML 

    SET @x = 
    '<EmpID>2001</EmpID> 
    <EmpLOCN>US</EmpLOCN> 
    <Salary> 
     <Salaryamt>2000</Salaryamt> 
     <Salarytype>EU</Salarytype> 
     <TAX> 
      <Tax1>20</Tax1> 
      <Tax2>2</Tax2> 
     </TAX> 
    </Salary> 
    <Salary> 
     <Salaryamt>4000</Salaryamt> 
     <Salarytype>EU</Salarytype> 
     <TAX> 
      <Tax1>10</Tax1> 
     </TAX> 
    </Salary>' 


    SELECT 
     Emp.Employee.value('(../EmpID)[1]', 'int') AS EmpID, 
     Emp.Employee.value('(../EmpLOCN)[1]', 'varchar(50)') AS EmpLOCN, 
     Emp.Employee.value('(Salaryamt)[1]', 'varchar(50)') AS SalaryAmt, 
     Emp.Employee.value('(Salarytype)[1]', 'varchar(50)') AS SalaryType, 
     Emp.Employee.value('(TAX/Tax1)[1]', 'varchar(50)') AS Tax1, 
     Emp.Employee.value('(TAX/Tax2)[1]', 'varchar(50)') AS Tax2 
    FROM 
     @x.nodes('/Salary') AS Emp(Employee)