2017-09-25 3 views
-1

この手順でエラーが発生したため、もう一度目をつけてください。 この手順では、xml文字列のデータをテーブルに挿入します。 テーブル名はSL_UnitizedScheme.SpoolUnitizedSchemeで、XML構文は以下の通りです:以下の手順を確認して(Get_ClientDetails)、正しいかどうかを確認する必要があります。

String<NewDataSet> 
<Table> 
<Clientname>Joy</Clientname> 
<Account>3452672</Account> 
<Amount>50000</Amount> 
<EmployerCont>20000</EmployerCont> 
</Table> 
</NewDataSet> 


CREATE PROCEDURE [dbo].[Get_ClientDetails] 
(@XML XML 
) 

AS 

INSERT INTO k2.[dbo].[SL_UnitizedScheme.SpoolUnitizedScheme] 
      ([ClientName] 
      ,[Account] 
      ,[Amount] 
      ,[EmployeeCont] 
      ,[status]) 


SELECT 
value('(ClientName/text())[1]','varchar(100)') as ClientName, 
value('(Account/text())[1]','varchar(100)') as Account, 
value('(Amount/text())[1]','varchar(100)') as Amount, 
value('(Employee/text())[1]','varchar(100)') as EmployeeCont, 
'Copied' 

FROM @XML.nodes('/NewDataSet/Table') 
as Table(Table) 

SELECT @@ROWCOUNT AS 'Rows' 



GO 

答えて

0

あなたの構文が間違っている、それはあなたのSELECT内の名前「テーブル」、予約済みのキーワードを、使用するかということに役立っていませんXMLのものと一致しません。お試しください:

SELECT 
MyTable.value('(Clientname/text())[1]','varchar(100)') as ClientName, 
MyTable.value('(Account/text())[1]','varchar(100)') as Account, 
MyTable.value('(Amount/text())[1]','varchar(100)') as Amount, 
MyTable.value('(EmployerCont/text())[1]','varchar(100)') as EmployeeCont, 
'Copied' 
FROM @val.nodes('/NewDataSet/Table') as MyData(MyTable) 
+0

ありがとうございました。 – kolmanuel

+0

ありがとうございました。あなたの意見は役に立ちました。 – kolmanuel

関連する問題