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

Parametros Opcionales en Stored Procedure

Estas en el tema de Parametros Opcionales en Stored Procedure en el foro de Mysql en Foros del Web. Hola como estan, esta vez los molesto para ver si alguien me puede decir como puedo indicarle a los procedimientos de MySql que tenga parametros ...
  #1 (permalink)  
Antiguo 07/02/2010, 14:52
Avatar de cadesa  
Fecha de Ingreso: septiembre-2007
Ubicación: Guatemala
Mensajes: 130
Antigüedad: 16 años, 6 meses
Puntos: 0
Parametros Opcionales en Stored Procedure

Hola como estan, esta vez los molesto para ver si alguien me puede decir como puedo indicarle a los procedimientos de MySql que tenga parametros opcionales, dado que en Sqlserver si se puede creo que aqui también, por ejempo

Código SQL:
Ver original
  1. CREATE PROCEDURE dbo.Prueba
  2. ( @param1 INT = NULL      <- digo que es opcional
  3.   @param2 IN                 <- digo que es obligatorio
  4. )
  5. AS
  6. BEGIN
  7. GO

Asi los he hecho yo en Sql Server pero no se como hacerlo en MySql dado que no lo he manejado mucho, por lo que si son tan amables de decirme como puedo hacerlo.

Saludos.
__________________
死は永遠の一歩だ
  #2 (permalink)  
Antiguo 07/02/2010, 15:06
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: Parametros Opcionales en Stored Procedure

Los stored procedures no poseen parámetros opcionales en MySQL.
Además, no se usan @ en los nombres de los parámetros, porque sólo se usan en las variables globales de usuario (que son variables de sesión). Poner @ en los parámetros generaría eventualmente problemas con el uso de los SP, ya que los parámetros de entrada y las variables locales no llevan símbolos especiales para ser usadas.

Para resolver las dudas de este tipo es mejor recurrir directamente al manual de referencia: 19.2. Sintaxis de procedimientos almacenados
__________________
¿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 07/02/2010, 15:23
Avatar de cadesa  
Fecha de Ingreso: septiembre-2007
Ubicación: Guatemala
Mensajes: 130
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Parametros Opcionales en Stored Procedure

Gracias por la respuesta, el codigo que puse es en sql por lo que ahi si se pueden usar, igual yo preguntaba para resolver la duda, a raiz de tu respuesta tengo otra duda, como se puede hacer para llamar un procedimiento almacenado en mysql pro no utilizando todas los parametros, se les puede enviar NULL o por ejemplo

Varchar se envia ""
Int se envia 0

gracias
__________________
死は永遠の一歩だ
  #4 (permalink)  
Antiguo 07/02/2010, 15:28
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: Parametros Opcionales en Stored Procedure

Técnicamente, si. Lo único que tienes que asegurar es que reciba todos los parámetros esperados, ya que si no daría un error (Missing parameter). El resto lo resuelves por dentro.

Tip 1: Lee con cuidado los ejemplos del manual y busca en Google otros ejemplos para MySQL. Los DBMS tienen diferencias sintacticas importantes entre sí. Por eso cuesta migrar los SP entre DBMS.

Tip 2: Cuidado con los anidamientos de bloques BEGIN/END y las recursividades. MySQL No los soporta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 07/02/2010, 15:51
Avatar de cadesa  
Fecha de Ingreso: septiembre-2007
Ubicación: Guatemala
Mensajes: 130
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Parametros Opcionales en Stored Procedure

Gracias, has resuelto mi duda basica, ahora solo tengo que investigar mas
__________________
死は永遠の一歩だ
  #6 (permalink)  
Antiguo 07/02/2010, 22:50
 
Fecha de Ingreso: marzo-2009
Ubicación: Mi casa que no?
Mensajes: 17
Antigüedad: 15 años
Puntos: 0
Respuesta: Parametros Opcionales en Stored Procedure

mira como tu yo eh estado batallando con mysql por que yo estaba casado con sql server, puedes hacer esto, desde donde lo mandas llamar si no quieres pasar parametro mandalo vacio asi '' y desde el mysql ases un
if (campo='')
begin
entonses lo pase nulo
end;
  #7 (permalink)  
Antiguo 08/02/2010, 06:05
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: Parametros Opcionales en Stored Procedure

A eso precisamente me refería al decir que lo resuelves por dentro del SP. Lo esencial es que algo tienes que enviarle, NULL o no.
Lo que no puede es no recibir el parámetro...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: parametros, procedure, stored
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 17:05.