Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/07/2012, 13:35
Avatar de youangelazul
youangelazul
 
Fecha de Ingreso: julio-2012
Ubicación: Ancash, Huarmey
Mensajes: 18
Antigüedad: 11 años, 9 meses
Puntos: 3
Mensaje Procesos Almacenados Consultas Varios Registros

Hola buenas Tardes, tengo una consulta miren tengo un Procedure en la que hago una consulta a la tabla PACIENTES de mi BD, donde le di como parametros 2 de entrada y 7 de salida, buena esta consulta me coge bien cuando ingreso un dato respecto con cualquier dato en pConsult_cod_paciente y un dato vacio en pConsult_nom_paciente, siendo pConsult_cod_paciente la comparacion con un campo PRIMARY KEY p.cod_paciente de mi BD en el que logicamente en mi BD solo existira un registro con un unico codigo, el error que tengo es cuando las cosas se hace inversamente cuando intento consultar dando un valor a cualquiera a pConsult_nom_paciente y un valor vacio a pConsult_nom_paciente, resulta que pConsult_nom_paciente hace una comparacion con un campo normal p.nom_paciente que almacena los nombres de los pacientes pero me ocurre el error cuando en mi BD existen mas de dos registro con el mismo nombre de pacientes votandome un error "Result consisted of more than one row" o sea el resultado consiste de mas de un registro, oz pido que me ayuden como puedo hacer que me pueda mostrar todos los datos de mi campo nombrePaciente haci tenga muchos registros con el mismo nombres y estos datos se almacenen dentro de las variables que he creado como OUT, es una pequeña conexion la cual estoy elaborandola desde JAVA. espero me puedan dar una manito Graciias ;).

-- Este es Mi Procedure
ELIMITER $$

DROP PROCEDURE IF EXISTS `consultarPaciente` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `consultarPaciente`(
IN pConsult_cod_paciente CHAR(4),
IN pConsult_nom_paciente VARCHAR(45),
OUT p_cod_paciente CHAR(4),
OUT p_nom_paciente VARCHAR(45),
OUT p_ape_paciente VARCHAR(45),
OUT p_fna_paciente DATE,
OUT p_sex_paciente VARCHAR(45),
OUT p_dir_paciente VARCHAR(45),
OUT p_tel_paciente CHAR(9)
)
BEGIN

SELECT p.cod_paciente, p.nom_paciente, p.ape_paciente, p.fna_paciente, p.sex_paciente, p.dir_paciente, p.tel_paciente
INTO p_cod_paciente, p_nom_paciente, p_ape_paciente, p_fna_paciente, p_sex_paciente, p_dir_paciente, p_tel_paciente
FROM paciente as p
WHERE
p.cod_paciente = pConsult_cod_paciente OR
p.nom_paciente = pConsult_nom_paciente;

END $$

DELIMITER ;

-- Una pequeña consulta suponiendo que en la BD existen mas registros con el name "ROSARIO"
CALL consultarPaciente('','rosario',@codPaciente,@nomPa ciente,@apePaciente,@fnaPaciente,@sexPaciente,@dir Paciente,@telPaciente);

Atte. YouAnGelAzul