BUEN DIA,
TENGO EL SIGUIENTE STRING:
partida= |1.23.45.67|2.34.54.3|1.23.45.67|4.22.11.55.22
<--SERIA VB6.0
LUEGO TENGO MI CODIGO EN SQL, EL CUAL ES UN STORED PROCEDURE
Código:
DECLARE
@partida varchar(20),
---CONTADOR DE PIPE
@posicion int,
@pipe varchar (200),
@pipeout varchar (200),
@monto int,
@cuenta int,
@fin char(1)
set @pipe = @partida
set @posicion = 0
set @cuenta = 0
set @fin ='i'
while @fin <>'f'
begin
if @posicion = 0
begin
select @posicion = charindex('|', @pipe)
if @posicion <> 0
set @cuenta = @cuenta +1
end
else
begin
select @posicion = charindex('|', @pipe,@posicion+1)
if @posicion <> 0
set @cuenta = @cuenta +1
end
if @posicion = 0
set @fin = 'f'
END
select @cuenta
select @posicion = charindex('|', @pipe,2)
---BUCLE PARA BUSCAR VALOR ENTRE PIPE E INTRODUCIRLO A LA #TABLA
DECLARE @contador int
SET @contador = 0
WHILE (@contador < @pipe)
BEGIN
SET @contador = @contador + 1
IF (@contador % 2 = 0)
CONTINUE
PRINT 'Iteracion del bucle ' + cast(@contador AS varchar)
END
LES EXPLICO ESE STRING SE ME GENERA POR VISUAL BASI LUEGO LO LLAMO AL STORED PROCEDURE, EL CONTADOR DE CARACTER ME VA A CONTAR CUANTOS PIPE (|) TIENE MI STRING Y EL WHILE ES PARA QUE ME TOME LOS VALORES QUE ESTAN DENTRO DEL STRING,
EL CONTADOR FUNCIONA PERFECTAMENTE .
MI PROBLEMA ESTA EN EL WHILE EL CUAL NO ME TOMA LOS VALORES QUE ESTA DENTRO DE CADA PIPE, EN MI CASO SERIA:
1.23.45.67
2.34.54.3
1.23.45.67
4.22.11.55.22
SI NO QUE ME TOMA TODO EL STRING COMPLETO
|1.23.45.67|2.34.54.3|1.23.45.67|4.22.11.55.22
LOS NECESITO UNO POR UNO POQUE LUEGO SE INTRODUCEN EN UNA #TABLA.
SI ALGUIEN PODRA AYUDARME SE LO AGRADECERE MUCHISIMO....