PDA

Ver la Versión Completa : Vaciar tablas desde Stored Procedure


Triton
25-03-2004, 18:49:24
Hola foreros, me persigue un problema al que quiero dar solución.

Uso Interbase 5.6, y lo que quiero hacer es un procedimiento que vacie las tablas que empiecen por 'TMP'...

El caso es que tengo este procedimiento:


create procedure BORRA_TABLAS_TEMPORALES
AS
declare variable nombre_tabla varchar(40);
declare variable aux smallint;
BEGIN

for select distinct rdb$relation_name
from rdb$relations
where rdb$relation_name like 'TMP%'
into :nombre_tabla
do begin

if ((nombre_tabla='TMP_VENTAS_US') or (nombre_tabla='TMP_VENTAS_US2')) THEN
delete from :nombre_tabla;
else
aux=1;
end
end


Pero Interbase no me deja compilarlo, ya sé que se puede hacer muy fácil desde Delphi con un Query, pero a mi me interesa tener este procedimiento en la Base De Datos.

Desde ya, muchas gracias :p

guillotmarc
25-03-2004, 19:04:07
Hola.

Que yo sepa no hay ninguna forma de hacer esto en Interbase 5, dentro de un procedimiento almacenado. Solo se puede hacer en el nuevo Firebird 1.5 gracias a la adición de la sentencia execute statement.

Saludos.

Triton
25-03-2004, 19:27:29
Muchas Gracias GillotMarc.
Sé que execute statement existe en Interbase 5.6, pero no tengo NPI de como se utiliza. Si alguien me pudiera echar un cable se lo agradecería.

De todos modos muchas gracias por la respuesta :)

__cadetill
25-03-2004, 20:48:48
Sé que execute statement existe en Interbase 5.6, pero no tengo NPI de como se utiliza.

quizás te sirva este enlace http://www.clubdelphi.com/foros/showthread.php?t=3747&highlight=execute+statement