sql >> データベース >  >> RDS >> Sqlserver

SQL Server の XML 列からデータをクエリする

    .query は常にデータ型 XML を返します。

    値を照会するには、「.value」を使用し、2 番目のパラメーターとしてデータ型を指定する必要があります。

    代わりにこれを使用してください:

    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. SQL Serverのテーブルまたはビューの列情報を取得する(T-SQL:sp_columns)

    2. OracleDELETEのパフォーマンスを向上させるための戦略

    3. ASYNC_NETWORK_IO待機に対する実行プランの影響–パート1

    4. Pgで2つの単語が隣接している文を検索します