Hola youangelazul:
El error es claro, cuando intentas asignar el resultado de una consulta a una variable DEBES ASEGURARTE QUE EL NÚMERO DE REGISTROS RESULTANTES ES UNO.
Una de las maneras en que podrías "Arreglar esto" sería agregar un
LIMIT 1 al final de tu consulta... de esta manera, aunque existan más de un registro, la consulta sólo regresará el primer registro que encuentre...
Ahora bien, si lo que pretendes hacer es que te regrese todas las apariciones de un nombre, NO LO PUEDES HACER CON VARIABLES, ya que el concepto de arreglos no existe en MySQL... podrías optar por no utilizar variables de salida y simplemente regresar el resultado del SELECT, es decir tendrías que quitar la parte del INTO... y dejar simplemente
Código MySQL:
Ver original p.cod_paciente, p.nom_paciente, p.ape_paciente, p.fna_paciente,
p.sex_paciente, p.dir_paciente, p.tel_paciente
p.cod_paciente
= pConsult_cod_paciente
OR p.nom_paciente = pConsult_nom_paciente;
De esta manera, sea un registro o N, no hay problema...
Saludos
Leo.