Ver Mensaje Individual
  #7 (permalink)  
Antiguo 28/04/2011, 19:22
ivanfisi
 
Fecha de Ingreso: febrero-2008
Mensajes: 29
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: problema al llamar funcion en Mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Bien, observando un poco mejor tu problema la cosa es simplísima: Estás usando el mismo nombre para el campo de la tabla, que para la variable de entrada... Eso está mal.
El parser de MySQL analiza jerárquicamente las cosas, y como una columna tiene más jerarquía que una variable local, interpreta que el segundo elemento de la comparación es también el campo (MySQL no diferencia entre mayúsculas y minúsculas en el cuerpo de un SF o SP).
En otras palabras, tu consulta le está diciendo a MySQL que devuelva el valor de DES_EMAIL, donde la clave primaria sea igual a sí misma... O sea, te está devolviendo TODA la tabla.

¿Se entiende?

La solución es: Ponle a la variable otro nombre.

Código MySQL:
Ver original
  1. DELIMITER $$
  2. DROP FUNCTION IF EXISTS `ldr`.`fc_getDesEmailContacto`$$
  3. CREATE FUNCTION `ldr`.`fc_getDesEmailContacto` (id_empresa int) RETURNS VARCHAR(100) DETERMINISTIC
  4.     DECLARE salida VARCHAR(100);
  5.     SELECT DES_EMAIL into salida FROM CONTACTO where IDE_EMPRESA = id_empresa;
  6.     RETURN salida;
  7. END $$
  8. DELIMITER ;



muchas gracias efectivamente ese era el problema pequeño detalle , muchas gracias por el apoyo ahora si esta funcionando bien la llamada