Vistas en procedimientos almacenados
Publicado por Bryan (2 intervenciones) el 14/04/2009 07:55:20
Hola que tal. Me podrian ayudar? Necesito crear un procedimiento almacenado que me devuelva una consulta intente primero esto:
DELIMITER $$
DROP FUNCTION IF EXISTS `Test` $$
CREATE DEFINER=`root`@`localhost` FUNCTION `Test`(nombre varchar(50)) RETURNS varchar(150)
BEGIN
DECLARE resultado varchar(150);
select perfiles.nombrePerfil into resultado from perfiles where perfiles.nombrePerfil=nombre;
return resultado;
END $$
DELIMITER ;
Pero me da un error que no puede devolver varias filas.
Luego intente esto: crear una vista con los resultados y luego mostrar los datos de la vista con una consulta hacia ella. Pero tampoco :( según lei en la documentación no se puede hacer referencia a un parametro al crear una vista dentro de un procedimiento almacenado.
DELIMITER $$
DROP PROCEDURE IF EXISTS `GenerarVista` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `GenerarVista`(ID int)
BEGIN
drop view if exists usuariobd.VistaEjemplo;
create view usuariobd.VistaEjemplo as select * from perfiles where perfiles.idPerfiles=ID;
END $$
DELIMITER ;
En resumen simplemente necesito realizar una consulta y obtener los resultados estos resultados pueden ser N según el tipo de consulta que se haga, asi que tampoco puedo definir un valor de retorno por ejemplo varchar(1000) porque puede que sea más o menos el resultado de la consulta..
Que puedo hacer?
Gracias por tomarse el timpo de leer y por la ayuda. Saludos!
DELIMITER $$
DROP FUNCTION IF EXISTS `Test` $$
CREATE DEFINER=`root`@`localhost` FUNCTION `Test`(nombre varchar(50)) RETURNS varchar(150)
BEGIN
DECLARE resultado varchar(150);
select perfiles.nombrePerfil into resultado from perfiles where perfiles.nombrePerfil=nombre;
return resultado;
END $$
DELIMITER ;
Pero me da un error que no puede devolver varias filas.
Luego intente esto: crear una vista con los resultados y luego mostrar los datos de la vista con una consulta hacia ella. Pero tampoco :( según lei en la documentación no se puede hacer referencia a un parametro al crear una vista dentro de un procedimiento almacenado.
DELIMITER $$
DROP PROCEDURE IF EXISTS `GenerarVista` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `GenerarVista`(ID int)
BEGIN
drop view if exists usuariobd.VistaEjemplo;
create view usuariobd.VistaEjemplo as select * from perfiles where perfiles.idPerfiles=ID;
END $$
DELIMITER ;
En resumen simplemente necesito realizar una consulta y obtener los resultados estos resultados pueden ser N según el tipo de consulta que se haga, asi que tampoco puedo definir un valor de retorno por ejemplo varchar(1000) porque puede que sea más o menos el resultado de la consulta..
Que puedo hacer?
Gracias por tomarse el timpo de leer y por la ayuda. Saludos!
Valora esta pregunta


0