Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Stored Procedures

Estas en el tema de Stored Procedures en el foro de Mysql en Foros del Web. estoy empezando a crear procedimientos en mysql, y la primera dificultat que he encontrado es en el paso de parametros alfanumericos Código: create procedure p16(IN ...
  #1 (permalink)  
Antiguo 03/07/2008, 05:54
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
Stored Procedures

estoy empezando a crear procedimientos en mysql, y la primera dificultat que he encontrado es en el paso de parametros alfanumericos
Código:
create procedure p16(IN inany INT, IN inserie CHAR(5), IN innum INT)
BEGIN
select * from facturas where any=inany and serie='inserie' and numfra=innum;
END;
el problema lo tengo en el campo serie ya que es alfanumerico, en la sintaxis antes indicada lo toma como una cadena prefijada, si le quito las comillas tampoco funciona ...
como hago para que serie sea igual al contenido de la variable inserie

gracias
  #2 (permalink)  
Antiguo 03/07/2008, 07:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Stored Procedures

Si cuando le quitas las comillas no te devuelve el dato, solamente puede ser porque no existen datos iguales al contenido del inserie y que al mismo tiempo coincidan en los valores de any y numfra.
Además estás violando una restricción de SQL al usar como nombre de campo la palabra "any". ANY es una palabra reservada que se usa en las subconsultas.
Lee con atención este capítulo del manual de referencia: 9.6. Tratamiento de palabras reservadas en MySQL
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 03/07/2008, 09:41
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
Respuesta: Stored Procedures

ha sido un error de transcripción, la variable se llama anny, y referente al contenido si que hay registros que cumplen las condiciones. Si sustituyo

anny=2002 and serie='1' and numfra=1

me devuelve un registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:40.