Expresion dinamica para ejec. funcion

30/11/2004 - 17:33 por Javier | Informe spam
Necesito crear una expresion para llamar una funcion y encajarla en un select
dinamicamente construido.

cadena a conseguir:
sueldo= DBO.SFFMONEDATO('RD$', 2525.3300,'2004-12-01',1,'EU0$')

expresiones como orden, criterios de selecciones varios etc.

#1: con esta sentecia :
set @expresuel=' sueldo=
DBO.SFFMONEDATO("'+rtrim(@monofic)+'",'+str(@val,10,4)+',"'+@f1+'",1,'+'"'+rtrim(@monset)+'")'

puedo construir lo siguiente:
sueldo= DBO.SFFMONEDATO("RD$", 2525.3300,"2004-12-01", 1, "YE$")

pero no funciona, si trato de asignar comillas simple en vez de doble en la
sentencia #1 genera error invalid column name,
pero si probando intento asiganar la expresion valida a una variable genera
el mismo error.

si solo se tratra de la funcion seria posible ejecutar diferentes QUERY
condicionalamente pero tengo la dificulta de que son muchos los valores a
considererar y la construccion dinamica me resuelve;

que se puede hacer.

Gracias
Javier
 

Leer las respuestas

#1 ulises
30/11/2004 - 19:46 | Informe spam
Para usar comillas dobles el SET QUOTED_IDENTIFIER
tendrías que estar en OFF, p.e.

SET QUOTED_IDENTIFIER OFF
GO
SELECT @sueldo = dbo.SFFMONEDA("RD$" ...

si está en ON te debería aceptar sin problemas las comillas
simples :

SET QUOTED_IDENTIFIER ON
GO
SELECT @sueldo = dbo.SFFMONEDA('RD$', ...

personalmente prefiero esta última opción (debes ingresar
dos veces la comilla simple si deseas que se contabilice
como una).

Saludos,
Ulises

Necesito crear una expresion para llamar una funcion y


encajarla en un select
dinamicamente construido.

cadena a conseguir:
sueldo= DBO.SFFMONEDATO('RD$',


2525.3300,'2004-12-01',1,'EU0$')



suman otras
expresiones como orden, criterios de selecciones varios etc.

#1: con esta sentecia :
set @expresuel=' sueldo=
DBO.SFFMONEDATO("'+rtrim(@monofic)+'",'+str(@val,10,4)+',"'+@f1+'",1,'+'"'+rtrim(@monset)+'")'

puedo construir lo siguiente:
sueldo= DBO.SFFMONEDATO("RD$", 2525.3300,"2004-12-01", 1,


"YE$")

pero no funciona, si trato de asignar comillas simple en


vez de doble en la
sentencia #1 genera error invalid column name,
pero si probando intento asiganar la expresion valida a


una variable genera
el mismo error.

si solo se tratra de la funcion seria posible ejecutar


diferentes QUERY
condicionalamente pero tengo la dificulta de que son


muchos los valores a
considererar y la construccion dinamica me resuelve;

que se puede hacer.

Gracias
Javier
.

Preguntas similares