En el siguiente ejemplo se muestra como crear un procedimiento almacenado que recibe dos parámetros (nombre de tabla y nombre de columna) y realiza una selección (select) en esa tabla y campo, creando así un método para hacer selecciones (select) parametrizando el nombre de tabla y un campo.
[sourcecode language="sql"]
DELIMITER $$
DROP PROCEDURE IF EXISTS ejemplo$$
CREATE PROCEDURE ejemplo(IN tabla CHAR(64), IN columna CHAR(64))
READS SQL DATA
COMMENT 'Hace select de una tabla y campo parametrizado'
BEGIN
SET @s = CONCAT('SELECT ' , columna , ' FROM ' , tabla);
PREPARE stmt FROM @s;
EXECUTE stmt;
END $$
DELIMITER ;
[/sourcecode]
Ahora tan solo hay que llamarlo con el nombre de tabla y campo que queramos:
[sourcecode language="sql"]
call ejemplo('mitabla', 'micampo');
[/sourcecode]
[sourcecode language="sql"]
DELIMITER $$
DROP PROCEDURE IF EXISTS ejemplo$$
CREATE PROCEDURE ejemplo(IN tabla CHAR(64), IN columna CHAR(64))
READS SQL DATA
COMMENT 'Hace select de una tabla y campo parametrizado'
BEGIN
SET @s = CONCAT('SELECT ' , columna , ' FROM ' , tabla);
PREPARE stmt FROM @s;
EXECUTE stmt;
END $$
DELIMITER ;
[/sourcecode]
Ahora tan solo hay que llamarlo con el nombre de tabla y campo que queramos:
[sourcecode language="sql"]
call ejemplo('mitabla', 'micampo');
[/sourcecode]
[...] http://elbitcampeador.wordpress.com/2009/02/13/mysql-seleccion-select-parametrizando-el-nombre-de-ta... [...]
ResponderEliminarMuchas gracias.
ResponderEliminarSaludos.
Buen día, antes que nada un saludo, un gran favor, me podrias mandar a mi correo heocay@hotmail.com como puedo devolver un conjunto de registros desde un procedimiento almacenado. y tambien si se puede y como hacerlo, que desde un procedimiento almacenado enviar registros segun un filtro dado al estilo de la instruccion SUSPEND de firebird.
ResponderEliminarMil gracias