Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Error de Intercalación en Función SQL (https://www.clubdelphi.com/foros/showthread.php?t=67747)

LCIdesarrollo 04-05-2010 15:13:38

Error de Intercalación en Función SQL
 
Hola, Estoy haciendo una consulta la cual posee una Función para concatenar Números de Pedidos q son varchar, esta Función toma como parametros 2 varchar (Tipo de Comprobante y Nro de Comprobante de Facturas).

La llamada en la consulta es la siguiente:

Código SQL [-]
DBO.LCI_CONCAT_PED(GVA12.T_COMP,GVA12.N_COMP)

El Error q me da es el siguiente:
"No se puede realizar la conversión implícita del valor varchar a varchar porque la intercalación del valor no está resuelta a causa de un conflicto de intercalación."

Por lo q estuve investigando es un problema de diferencias en la COLLATION, los valores que paso como parametro y los valores q concateno son Latin1_General_Bin y se ve q lo q devuelve la Función es otro, creo q este puede ser el problema, pero no estoy seguro me gustaria ver si me pueden dar una solución....desde ya Muchas Gracias


Por ultimo les dejo el código de la Función:

Código SQL [-]
CREATE FUNCTION dbo.LCI_CONCAT_PED (@t_comp varchar(3),@n_comp varchar(13))
RETURNS varchar(200) AS
BEGIN
declare @retvalue varchar(200)
set @retvalue=''

select @retvalue = @retvalue +ltrim(rtrim(isnull(NRO_PEDIDO,'')))+' - '
from (SELECT GVA55.NRO_PEDIDO
FROM GVA55
WHERE GVA55.T_COMP = @t_comp
AND GVA55.N_COMP = @n_comp) as tmp_tbl

return SUBSTRING(@retvalue,1,
CASE LEN(@retvalue)
WHEN 0 THEN 1
ELSE LEN(@retvalue)-2
END)

luisgutierrezb 04-05-2010 18:22:40

en MS SQL server generalmente se resuelve poniendo collate despues del campo con la intercalacion por ejemplo

select Uno + dos collate Latin1_General_Bin
from tabla

a lo mejor al declarar la funcion puedes especificarle el collate al valor, la verdad nunca lo eh intentado

LCIdesarrollo 05-05-2010 00:18:55

Disculpen pero ya lo solucuione el error no esta en la función

Saludos

Casimiro Notevi 05-05-2010 00:54:17

Cita:

Empezado por LCIdesarrollo (Mensaje 362819)
Disculpen pero ya lo solucuione el error no esta en la función

Saludos


¿Y dónde está el error?


Por cierto, no repitas hilos, borraré el otro.

edy_aca 11-08-2017 23:01:27

hola luisgutierrezb
Cita:

Empezado por luisgutierrezb (Mensaje 362784)
en MS SQL server generalmente se resuelve poniendo collate despues del campo con la intercalacion por ejemplo

select Uno + dos collate Latin1_General_Bin
from tabla

a lo mejor al declarar la funcion puedes especificarle el collate al valor, la verdad nunca lo eh intentado

me vi en un problema y lo soluciones con tu comentario muchas gracias


La franja horaria es GMT +2. Ahora son las 08:09:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi