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

Obtener un registro de una tabla en un parametro de salida en procemiento almacenado

Estas en el tema de Obtener un registro de una tabla en un parametro de salida en procemiento almacenado en el foro de Mysql en Foros del Web. Buenas tardes a todos... tengo una duda, espero que por favor me ayuden Nesecito guardar en un parametro de salida un registro que pertenesca a ...
  #1 (permalink)  
Antiguo 07/06/2013, 11:43
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 11 meses
Puntos: 2
Obtener un registro de una tabla en un parametro de salida en procemiento almacenado

Buenas tardes a todos...
tengo una duda, espero que por favor me ayuden
Nesecito guardar en un parametro de salida un registro que pertenesca a cierta ID, Ejemplo

create procedure ver(id int, OUT nombre varchar(50))
begin
select nombre from cliente where id_cliente=id INTO nombre;
end
//

CALL ver(2,@nombre);
select @nombre;
pero siempre me devuelve un valor null y si miro en mi tabla cliente tengo el registro y la ID a la cuall pertenece ese registro
  #2 (permalink)  
Antiguo 07/06/2013, 12:00
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Obtener un registro de una tabla en un parametro de salida en procemiento

Hola dacroma:

Recomendaciones... nunca utilices como nombres de parámetros los mismos nombres de tus campos... esto te puede traer problemas.

Prueba así:

Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. CREATE PROCEDURE ver(p_id INT, OUT p_nombre VARCHAR(50))
  4.    SELECT nombre INTO p_nombre FROM cliente WHERE id_cliente = p_id;
  5. END $$
  6.  
  7. DELIMITER ;

Saludos
Leo.
  #3 (permalink)  
Antiguo 07/06/2013, 12:22
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 11 meses
Puntos: 2
Respuesta: Obtener un registro de una tabla en un parametro de salida en procemiento

Muchas gracias Leonardo_Josue, entiendo
ahora tengo otra duda
si quiero ahora ver la direccion,nombre, telefono por que al lanzar el select me devuelve null
Ejemplo

create procedure ver(id int, OUT nom varchar(50),OUT dir varchar(50), OUT tel bigint(20))
begin
select nombre,direccion,telefono from cliente where id_cliente=id INTO nom,dir,tel;
end
//

CALL ver(2,@nomb,@direc,@telef);
select @nomb,@direc,@telef;

Me devuelve null
  #4 (permalink)  
Antiguo 07/06/2013, 12:42
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Obtener un registro de una tabla en un parametro de salida en procemiento

Hola de nuevo:

La sentencia INTO se utiliza en la sección SELECT, no en la sección WHERE:

http://dev.mysql.com/doc/refman/5.0/en/select-into.html

Por lo tanto deberías ponerlo así:

Código MySQL:
Ver original
  1. ...
  2. SELECT nombre,direccion,telefono INTO nom,dir,tel
  3. FROM cliente
  4. WHERE id_cliente=id;
  5. ...

Haz la prueba y nos comentas.

Saludos
Leo.
  #5 (permalink)  
Antiguo 07/06/2013, 12:48
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, 5 meses
Puntos: 2658
Respuesta: Obtener un registro de una tabla en un parametro de salida en procemiento

Código MySQL:
Ver original
  1. CALL ver(2,@nomb,@direc,@telef);
  2. select @nomb,@direc,@telef;
Por lo pronto, debes inicializar esas variables, porque de lo contrario su valor es NULL, y toda asignación a un NULL da por resultado NULL.
Código MySQL:
Ver original
  1. select @nomb:='', @direcnomb:='', @telefnomb:='';
  2. CALL ver(2,@nomb,@direc,@telef);
  3. select @nomb,@direc,@telef;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 12/06/2013, 08:08
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 10 años, 11 meses
Puntos: 2
Respuesta: Obtener un registro de una tabla en un parametro de salida en procemiento

Ok
Muchas gracias gnzSoloyo

Etiquetas: almacenado, parametro, registro, salida, select, tabla
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 08:44.