02/05/2007, 16:23
|
| | Fecha de Ingreso: febrero-2007
Mensajes: 182
Antigüedad: 17 años, 10 meses Puntos: 0 | |
Re: Devolver un parametro en una variable y hacer un select teminé con mi procedure...les dejo la solución ya que han sido de gran ayuda, por si la precisan algún día
CREATE PROCEDURE CadyResto
@Texto varchar(100),@Tipo Char(1),@Largo int,@txtAcotado varchar(100) output,
@txtresto varchar(100) output
AS
set nocount on
--@Texto varchar(100), texto a formatear
--@Tipo Char(1), N=numero , C=char
--@Largo int largo a paddear
--@txtAcotado varchar(100) String de @texto acotado por el largo @largo
--@txtresto varchar(100) String de @texto, excluido por el largo @largo
----------
BEGIN
/*
Procedimiento que hace el trim de un string y lo rellena con ceros o espacios en caso de ser su largo menor que @largo, y
devuelve en la variable @resto el string "desechado" en caso de ser el largo mayor a @largo
*/
--chequeo que el parametro no sea nulo
Set @Texto= ISNULL(@Texto,'')
--chequeo que el largo sea correcto
IF @Largo<0 set @Largo=0
IF @Tipo='N'
BEGIN
--Tipo numerico lo completo con 0
set @txtacotado = REPLICATE('0', @Largo - datalength(dbo.Trim(isNull( @Texto,''))) ) + dbo.TRIM(@Texto)
END
ELSE
BEGIN
--Tipo caracter lo completo con ' '
set @txtacotado= LEFT(DBO.TRIM(ISNULL(@Texto,'')), @largo)
-- +REPLICATE(' ',@Largo - datalength(LEFT( dbo.TRIM(isNull( @Texto,'' ) ),@Largo ) ) )
set @txtresto = RIGHT(DBO.TRIM(ISNULL(@Texto,'')), len(DBO.TRIM(@Texto)) - @largo)
-- set @txtacotado = LEFT(dbo.TRIM (ISNULL(@Texto,'') ), @Largo) + REPLICATE(' ',@Largo - datalength(LEFT( dbo.TRIM(isNull( @Texto,'' ) ),@Largo ) ) )
-- set @txtresto = RIGHT(dbo.TRIM (ISNULL(@Texto,'') ), datalength(@texto)-@Largo) + REPLICATE(' ',160 - datalength(LEFT( dbo.TRIM(isNull( @Texto,'' ) ),160 ) ) )
END
--select @txtAcotado
END
GO
//////////
Martin |