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

Stored Procedure - select a algunos parametros

Estas en el tema de Stored Procedure - select a algunos parametros en el foro de Mysql en Foros del Web. Hola nuevamente Ojala me puedan ayudar con esta consulta, gracias: Tengo pensado hacer un Stored Procedure (SP) donde tenga 3 parametros in, dentro del SP ...
  #1 (permalink)  
Antiguo 19/04/2010, 18:10
 
Fecha de Ingreso: abril-2010
Mensajes: 36
Antigüedad: 14 años
Puntos: 2
Stored Procedure - select a algunos parametros

Hola nuevamente

Ojala me puedan ayudar con esta consulta, gracias:

Tengo pensado hacer un Stored Procedure (SP) donde tenga 3 parametros in, dentro del SP se realizaria un select en una tabla, digamos:

Código:
Select fname, lname, email
from clientes
where fname=p_fname and lname=p_lname and email=p_email;
Pero que pasaria si solo deseo ingresar un solo dato como parametro al SP, digamos solo el lname. Habra forma de que el SP realice el select utilizando solo el valor del parametro lname?
  #2 (permalink)  
Antiguo 19/04/2010, 18:30
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 Procedure - select a algunos parametros

No enviar uno o más de varios parámetros posibles te planteará dos problemas:
1) El SP tiene que recibir sí o sí todos los parámetros que están declarados en el prototipo, aunque el parámetro entrante llegue como NULL. No importa. El asunto es que debe ser enviado por cuanto de no recibirlo se generará un error de ejecución donde te dirá "Se esperaban 3 parámetros y se reciben 1".
Simplemente, tienes que enviar algo.

2) El segundo problema es que el SP ya no podrá contener simplemente una sentencia. Si le envías menos parámetros de los necesarios para ejecutar esa sentencia, deberás crear en el cuerpo del SP un árbol de decisiones IF... THEN .... ELSE ... END IF, que pueda ejecutar la sentencia de diferentes formas de acuerdo a los parámetros válidos recibidos...
¿Se comprende la idea?
__________________
¿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 20/04/2010, 09:43
 
Fecha de Ingreso: abril-2010
Mensajes: 36
Antigüedad: 14 años
Puntos: 2
Respuesta: Stored Procedure - select a algunos parametros

Gracias por la rapida respuesta.

Hice un SP de esta forma y funciono:

Código:
CREATE DEFINER=`root`@`%` PROCEDURE `sp_test`(in param1 char(40), in param2 char(15))
BEGIN
        if(param1 != '' and param2 != '') then
        select * from sistema where des_sistema=param1 and des_abreviatura=param2;
        elseif(param1='') then
        select * from sistema where des_abreviatura=param2;
        elseif(param2='') then
        select * from sistema where des_sistema=param1;
        end if;
END
Pero para llamarlo hay que introducir:

Código:
call sp_test('Inventarios','');
Creo que lo ideal seria poder ingresar algo como:

Código:
call sp_test('Inventarios');
Y dejar que el SP se encargue de buscar en el campo adecuado. Es posible crear un codigo para que funcione de esa forma? y como seria? Gracias por la ayuda.

Etiquetas: parametros, procedure, select, 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 10:19.