sql >> Database >  >> RDS >> Sqlserver

Gegevens opvragen uit een XML-kolom in SQL Server

.query retourneert altijd gegevenstype XML.

Om een ​​waarde op te vragen, moet u ".value" gebruiken en het gegevenstype specificeren als de tweede parameter.

Gebruik dit in plaats daarvan:

declare @xmlobj as xml = '<SimpleUserData xmlns="http://schemas.datacontract.org/2004/07/MyProject.CustomFx.Web" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" z:Id="1" z:Type="MyProject.CustomFx.Web.SimpleUserData" z:Assembly="MyProject.CustomFx.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
      <BatchDescription z:Id="2">I want this value</BatchDescription>
      <BatchID>9c437c08-0f28-4c77-9a50-49a7a4e8930a</BatchID>
      <BatchTemplateID>And this value too</BatchTemplateID>
    </SimpleUserData>';

WITH XMLNAMESPACES('http://schemas.datacontract.org/2004/07/MyProject.CustomFx.Web' as x)
select
  @xmlobj.value('(/x:SimpleUserData[1]/x:BatchDescription[1])','nvarchar(max)') as value1
 ,@xmlobj.value('(/x:SimpleUserData[1]/x:BatchTemplateID[1])','nvarchar(max)') as value2;



  1. Een back-up maken van uw Moodle MariaDB-database

  2. Hoe de datum en tijd selecteren zonder de seconden in mysql?

  3. Hoe kan ik een partitie van de ene tabel in een andere in Oracle importeren?

  4. mysqli_query() verwacht ten minste 2 parameters, waarvan 1 opgegeven?