SQL解析XMl

create proc usp_100
@inxml varchar(8000)='',
@czyh   ut_czyh=''
as

set nocount on
SET QUOTED_IDENTIFIER ON
SET ANSI_PADDING ON
SET ANSI_NULLS ON
SET ARITHABORT ON
DECLARE @xml xml
        ,@WS08_10_052_01  varchar(60)
        ,@WS08_10_025_16  varchar(100)
        ,@WS02_01_910_01  varchar(60)
        ,@WS01_00_920_02  varchar(50)
        ,@WS02_01_926_02  varchar(50)
        ,@standardcode    varchar(50)
        , @now            ut_rq16
select @now=convert(char(8),getdate(),112)+convert(char(8),getdate(),8)
SET @inxml=replace(@inxml, '', '')--处理文件头,否则会报错

SET @xml=@inxml

SELECT @standardcode=T.C.value('standardcode[1]', 'varchar(50)')
FROM   @xml.nodes('/messages/business') AS T(C)

SELECT @WS08_10_052_01=T.C.value('WS08_10_052_01[1]', 'varchar(60)'),
       @WS08_10_025_16=T.C.value('WS08_10_025_16[1]', 'varchar(100)'),
       @WS02_01_910_01=T.C.value('WS02_01_910_01[1]', 'varchar(60)'),
       @WS01_00_920_02=T.C.value('WS01_00_920_02[1]', 'varchar(50)'),
       @WS02_01_926_02=T.C.value('WS02_01_926_02[1]', 'varchar(50)')
FROM   @xml.nodes('/messages/business/requestset/reqcondition/condition') AS T(C)
 

你可能感兴趣的:(SQL)