Ver Mensaje Individual
  #6  
Antiguo 01-10-2008
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Reputación: 22
sitrico Va por buen camino
Ok, ya +- tengo la idea, revisando por aqui veo que tambien se pueden crear funciones almacenadas.


Que con una sintaxsis similar a la que muestras se puede definir una función.

¿ Las funciones almacenadas pueden devolver usarse dentro de un select ?

Código SQL [-]
SELECT ObtenerPiezas(Aux02) as piezas, largo(aux02) as largo, 
           Alto(Aux02) as Alto, Ubicacion(Aux02) as ubicacion
FROM Tabla

creando una función así:

Código SQL [-]
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

CREATE FUNCTION ObtenerPiezas
@Cadena varchar(20)
AS

Declare 
@Piezas integer,
@Largo float,
@Alto float,
@Ubicacion varchar(20)


Select @PIezas = SubString(@Cadena, 0, CharIndex(';', @Cadena))
Select @Cadena  = SubString(@Cadena, CharIndex(';', @Cadena)+1,len(@Cadena))
Select @Largo = SubString(@Cadena, 0, CharIndex(';', @Cadena))
Select @Cadena  = SubString(@Cadena, CharIndex(';', @Cadena)+1,len(@Cadena))
Select @Alto = SubString(@Cadena, 0, CharIndex(';', @Cadena))
Select @Ubicacion = SubString(@Cadena, CharIndex(';', @Cadena)+1,len(@Cadena))

RETURN @PIezas

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

Claro que lo lógico sería definir 5 funciones, una global para obtener los 4 campos separados y luego, 4 funciones separadas, que llaman a la global y devuelven sólo el campo en cuestión.

Disculpa la lata pero no me atrevo a tocar la BDD hasta estar bien claro.
__________________
Sitrico

Última edición por sitrico fecha: 01-10-2008 a las 20:08:14.
Responder Con Cita