Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/07/2012, 13:14
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Result consisted of more than one row

Hola palmach:

Creo que el problema está en esta consulta:

Código:
SELECT p.plantaid, p.tipo
  INTO vPlanta, vTipo
FROM seguridad.usuario u
  INNER JOIN db.personal p ON u.personalid = p.personalid
WHERE
  u.usuario = pUsuario;
Si quitas la parte en rojo y ejecutas la consulta te puedo asegurar que regresa más de un registro, por lo tanto al poner el INTO, mysql no puede determinar qué valores son los que tiene que asignar a las variables... tienes que asegurar que el SELECT te regrese UN SOLO REGISTRO. Observa este ejemplo:

Código MySQL:
Ver original
  1. mysql> SET @id = 0;
  2. Query OK, 0 rows affected (0.00 sec)
  3.  
  4. mysql> SET @descripcion = '';
  5. Query OK, 0 rows affected (0.00 sec)
  6.  
  7. mysql> SELECT * from Tabla;
  8. +------+-------------+
  9. | id   | descripcion |
  10. +------+-------------+
  11. |    1 | uno         |
  12. |    2 | dos         |
  13. |    3 | tres        |
  14. +------+-------------+
  15. 3 rows in set (0.00 sec)
  16.  
  17. mysql> SELECT id, descripcion INTO @id, @descripcion
  18.     -> FROM tabla;
  19. ERROR 1172 (42000): Result consisted of more than one row
  20.  
  21. mysql> SELECT id, descripcion INTO @id, @descripcion
  22.     -> FROM tabla
  23.     -> LIMIT 1;
  24. Query OK, 1 row affected (0.00 sec)
  25.  
  26. mysql> select @id, @descripcion;
  27. +------+--------------+
  28. | @id  | @descripcion |
  29. +------+--------------+
  30. |    1 | uno          |
  31. +------+--------------+
  32. 1 row in set (0.00 sec)

Observa que el primer SELECT con INTO trataría de asignar tres registros a las variables... en el segundo caso, al poner LIMIT 1 no hay problema

Dale un vistazo y nos comentas.


Cita:
Nuevamente gnzsoloyo se adelantó con la respuesta jejeje... saludos
Saludos
Leo.