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