Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Nombre de tabla como parametro

Estas en el tema de Nombre de tabla como parametro en el foro de Mysql en Foros del Web. Saludos y de antemano gracias. DELIMITER // CREATE PROCEDURE Relacional(IN Origen VARCHAR(64), IN Operador INT, IN Consigna VARCHAR(64), IN Destino VARCHAR(64), IN Temporizador INT) BEGIN ...
  #1 (permalink)  
Antiguo 27/02/2006, 16:29
 
Fecha de Ingreso: diciembre-2002
Mensajes: 21
Antigüedad: 21 años, 4 meses
Puntos: 0
Nombre de tabla como parametro

Saludos y de antemano gracias.

DELIMITER //
CREATE PROCEDURE Relacional(IN Origen VARCHAR(64), IN Operador INT, IN Consigna VARCHAR(64), IN Destino VARCHAR(64), IN Temporizador INT)
BEGIN
DECLARE VConsigna INT;
DECLARE VOrigen INT;
SELECT valor INTO VConsigna FROM Consigna;
SELECT valor INTO VOrigen FROM Origen;
IF Temporizador>0 THEN
SELECT SLEEP(Temporizador);
END IF;
CASE Operador
WHEN 0 THEN
IF VOrigen > VConsigna THEN
UPDATE Destino SET valor='1', fecha=now();
ELSE
UPDATE Destino SET valor='0', fecha=now();
END IF;
WHEN 1 THEN
IF VOrigen < VConsigna THEN
UPDATE Destino SET valor='1', fecha=now();
ELSE
UPDATE Destino SET valor='0', fecha=now();
END IF;
ELSE SELECT sleep(4);
END CASE;
END//
DELIMITER ;

CALL Relacional('Tabla1',0,'Tabla2','Tabla3',8)//
ERROR 1146 (42S02): Table 'replica.Consigna' doesn't exist

Bueno, la duda esta en lo siguiente para este procedimiento necesito que los nombres de las tablas donde realiza las consultas les llegue como parametros. el procedimiento en el momento de creacion no me da errores pero cuando los ejecuto no me toma el valor de las variavles Consigna y Origen si no que me dice que las tablas Consigna y Origen no existen, si alguien puede decirme o darme una idea de como hacer que esto funcione sin poner los nombres de las tablas fijos gracias.
__________________
Att.
Robin
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:31.