Resumen Tratamiento de cadenas en SQL Server

Mensaje enviado por YAMIL BRACHO <brachoy@pdvsa.com>

"como puedo hacer un store procedure donde yo le mande como parametro esto
4-2000-49-18 (todo junto)
y que el store procedure me devuelva
4
2000
49
18"

Roberto, creo que es mejor idea hacer esto con Visual Basic pero si lo tienes que hacer en un stored procedure, supongamos que declaras que los strings que te va a devolver como parametros de salida, seria algo como:

Create Procedure Separar
   @original     varchar(60),
   @p1        varchar(10)    output,
   @p2        varchar(10)    output,
   @p3        varchar(10)    output,
   @p4        varchar(10)    output
AS
    DECLARE @tempstr    varchar(60),
     @pos    tinyint,
     @len    tinyint

SET @tempstr = @original

-- Separa primer parametro
SET @len = DATALENGTH( @tempstr )
SET @pos = PATINDEX('-', @tempstr)
SET @p1 = SUBSTRING( @tempstr, 1, @pos-1)
SET @tempstr = SUBSTRING(@tempstr, @pos+1, @len-@pos)


-- Separa segundo parametro
SET @len = DATALENGTH( @tempstr )
SET @pos = PATINDEX('-', @tempstr)
SET @p2 = SUBSTRING( @tempstr, 1, @pos-1)
SET @tempstr = SUBSTRING(@tempstr, @pos+1, @len-@pos)
       
-- Separa tercer parametro
SET @len = DATALENGTH( @tempstr )
SET @pos = PATINDEX('-', @tempstr)
SET @p3 = SUBSTRING( @tempstr, 1, @pos-1)
SET @tempstr = SUBSTRING(@tempstr, @pos+1, @len-@pos)

-- Separa ultimo parametro
SET @p4 = @tempstr


Espero esto te ayude

Yamil



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com