Faz uma busca dentro de um string e extrair o dado requisitado
Faz uma busca dentro de um string e extrair o dado requisitado
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
drop table #teste CREATE TABLE #teste( [ID] [int] IDENTITY(1,1) NOT NULL, [msg] [varchar](300) NULL ) insert into #teste (msg) values ('CreditAuthorizationResponse [cet=null, codRet=02, data=20180430, hora=11:50:25, juros=null, msgAvs=null, msgret=Sucesso, numAutor=602601, numPedido=1423912, numSqn=567, respAvs=null, tid=1898292409, valParcelas=null, valTotalJuros=null]') insert into #teste (msg) values ('CreditAuthorizationResponse [cet=null, codRet=03, data=20180430, hora=11:50:25, juros=null, msgAvs=null, msgret=Sucesso, numAutor=602601, numPedido=1423912, numSqn=564567, respAvs=null, tid=1898292409, valParcelas=null, valTotalJuros=null]') insert into #teste (msg) values ('CreditAuthorizationResponse [cet=null, codRet=04, data=20180430, hora=11:50:25, juros=null, msgAvs=null, msgret=Sucesso, numAutor=602601, numPedido=1423912, numSqn=1115642567, respAvs=null, tid=1898292409, valParcelas=null, valTotalJuros=null]') DECLARE @document varchar(max), @teste varchar(max) SELECT @document = 'CreditAuthorizationResponse [cet=null, codRet=00, data=20180430, hora=11:50:25, juros=null, msgAvs=null, msgret=Sucesso, numAutor=602601, numPedido=1423912, numSqn=567, respAvs=null, tid=1898292409, valParcelas=null, valTotalJuros=null]'; SELECT CHARINDEX('numSqn', @document, 5); SELECT @document = 'CreditAuthorizationResponse [cet=null, codRet=00, data=20180430, hora=11:50:25, juros=null, msgAvs=null, msgret=Sucesso, numAutor=602601, numPedido=1423912, numSqn=567, respAvs=null, tid=1898292409, valParcelas=null, valTotalJuros=null]'; SELECT CHARINDEX('respAvs', @document, 5); SELECT replace(SUBSTRING(@document, 158, (170-158)-2) ,'numSqn=','') DECLARE @ID int, @Msg varchar(max), @TamInicio int, @TamFim int DECLARE cProfissional CURSOR FOR SELECT ID,[msg] FROM #teste OPEN cProfissional FETCH cProfissional INTO @ID, @Msg WHILE @@FETCH_STATUS = 0 BEGIN --select @Msg, @ID SET @TamInicio = (SELECT CHARINDEX('numSqn', @Msg, 5)) SET @TamFim = (SELECT CHARINDEX('respAvs', @Msg, 5)) SELECT replace(SUBSTRING(@Msg, @TamInicio, (@TamFim-@TamInicio)-2) ,'numSqn=','') FETCH cProfissional INTO @ID, @Msg END CLOSE cProfissional DEALLOCATE cProfissional |