PDA

Ver la Versión Completa : Pasar Tabla Como Parametro en Stored Procedure


elpinjum
16-10-2003, 15:16:44
Me gustaria crearme una stored procedure en interbase con el cual pudiera pasar una parmetro tipo Varchar en el cual pondria el nombre de una tabla, en el interior del procedimiento usar este parametro para hacer un select de una tabla por ejemplo:

CREATE PROCEDURE "SP_DR_PROVEEDORES_NOMBRE"
(
PARAMETROTABLA VARCHAR(40)
)
AS

DECLARE VARIABLE CODIGO INTEGER
begin
FOR SELECT CODIGO FROM PARAMETROTABLA INTO :CODIGO DO
BEGIN
.
.
.
SUSPEND;
END
end


El motivo de querer hacer esto es que tengo la necesidad de hacer unos procedimientos iguales para distintas tablas, y de este modo podría unificarlo todo en un mismo procedimiento.

guillotmarc
16-10-2003, 15:25:07
Hola.

No es posible utilizar un nombre de tabla como una variable.

Lo único que puedes intentar, es hacer algo con la nueva sentencia execute statement (si no le han cambiado el nombre en la ultima versión) que proporciona el nuevo Firebird 1.5. Con esta instrucción puedes tener una sentencia SQL en una variable de texto, y ejecutarla.

Saludos.

__cadetill
16-10-2003, 17:56:10
Como bien dice el amigo Marc, con versiones anteriores a Firebird 1.5 no se podía hacer y, para que veas un ejemplillo simple de su uso, te recomiendo este hilo http://www.clubdelphi.com/foros/showthread.php?s=&threadid=3747

(yo también lo he necesitado :p)

elpinjum
17-10-2003, 10:37:41
Muchas gracias a ambos, me ha sido de mucha utilidad