Cita: Saludos, qusiera que este Procedure me retornara varios registros pero no lo hace,
En primer lugar, si buscas que te devuelva varios registros, no puedes intentar recuperarlos con los parámetros de entrada/salida, porque MySQL no tiene tipos de datos array, record, ni table.
Para que devuelva N registros por SP, la última sentencia del SP debe ser el SELECT de la consulta:
Código MySQL:
Ver originalDELIMITER $$
SELECT Nombre
,Apellido
,nomDepartamento
INNER JOIN empleados e
ON ca.codEmpleado
= e.codEmpleado
INNER JOIN departamentos d
ON d.codDepartamento
= ca.codDepartamento
En segundo lugar, las variables de usuario de MySQL (las que se usan con "@"), se deben inicializar antes de ser usadas, porque sino su valor es NULL, y toda suma, resta, multiplicación, división, concatenación o agregación de cualquier cosa con NULL da... NULL.
En otras palabras, para poder usar esas variables en la llamada del CALL, primero tienes que asignarles un valor. De lo contrario cualquier cosa que entre a ellas dentro del SP se perderá.
¿Se entiende?