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 originalQuery OK, 0 rows affected (0.00 sec)
mysql
> SET @descripcion
= '';Query OK, 0 rows affected (0.00 sec)
+------+-------------+
| id | descripcion |
+------+-------------+
| 1 | uno |
| 2 | dos |
| 3 | tres |
+------+-------------+
mysql
> SELECT id
, descripcion
INTO @id
, @descripcion
ERROR 1172 (42000): Result consisted of more than one row
mysql
> SELECT id
, descripcion
INTO @id
, @descripcion
Query OK, 1 row affected (0.00 sec)
mysql
> select @id
, @descripcion
;+------+--------------+
| @id | @descripcion |
+------+--------------+
| 1 | uno |
+------+--------------+
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.