Get from XML all ObjectNames LIKE 'MF%' OR 'MC%'

  • Hi,
    how can i get all Values from a XML-File (with tsql)
    WHERE ObjectNames LIKE 'MF%' OR 'MC%'    ?
    (The Source-XML is a SSIS-Dtsx-Package).
    Regards
    Nicole

    <DTS:Executable DTS:ExecutableType="SSIS.Pipeline.2">
            <DTS:Property DTS:Name="ExecutionLocation">0</DTS:Property>
            <DTS:Property DTS:Name="ExecutionAddress"></DTS:Property>
            <DTS:Property DTS:Name="DelayValidation">0</DTS:Property>
           .....
            <DTS:Property DTS:Name="ObjectName">MFK_LOG_ERRORS</DTS:Property>

    MyCode

    SELECT Props.Prop.query('.')                   as PropXml
    ,   Props.Prop.value('declare namespace p1="www.microsoft.com/SqlServer/Dts";
              string(./@p1:Name)','nvarchar(max)')       as PropName
    ,   Props.Prop.value('.', 'nvarchar(max)')              as PropValue
    FROM  (
       SELECT  CAST(pkgblob.BulkColumn AS XML) pkgXML
       FROM  OPENROWSET(bulk 'C:\Program Files\Microsoft SQL Server\110\DTS\Packages\Work\SWH_EXT_FKR.dtsx',single_blob) AS pkgblob
       ) t
    CROSS  APPLY pkgXML.nodes('declare namespace DTS="www.microsoft.com/SqlServer/Dts";
            /DTS:Executable/DTS:Property') Props(Prop)

  • Something like this maybe?
    😎

    SELECT
      PROP.DATA.value('(@Name)[1]','VARCHAR(100)')
    FROM @DTSXML.nodes('//Property') AS PROP(DATA)

    You will have to add either the namespace declaration or a namespace wildcard to make it work with the actual data.

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic. Login to reply