Você está na página 1de 1

Fazendo um Loop nas Tabelas usando o Execute Statment

Imagine o Cenrio vc no sabe em qual tabela esta a menor data de um certo campo, e precisamos fazer um Loop nas tabelas
para descobrirmos qual a data menor.
Tabelas
Campo
Documento1
DataInicial
Documento2
DataInicial
Documento3
DataInicial
Documento4
DataInicial
CREATE PROCEDURE SP_DOCUMENTO_MENORDATA
RETURNS (
OPDATAFINAL DATE)
AS
DECLARE VARIABLE VNOMETABELA VARCHAR(100);
DECLARE VARIABLE VDATAINICIAL DATE;
DECLARE VARIABLE VSQL VARCHAR(1000);
begin
OPDATAFINAL = CURRENT_DATE;
FOR
SELECT DISTINCT T.RDB$RELATION_NAME TABELA
FROM RDB$USER_PRIVILEGES T
WHERE T.RDB$RELATION_NAME NOT LIKE RDB$% AND T.RDB$OBJECT_TYPE=0 AND T.RDB$RELATION_NAME
LIKE DOCUMENTO%
ORDER BY 1
INTO :VNOMETABELA
DO
BEGIN
VSQL = ;
VSQL = SELECT MIN(DATAINICIAL) FROM || :VNOMETABELA;
EXECUTE STATEMENT VSQL INTO :VDATAINICIAL;
IF (:VDATAINICIAL < :OPDATAFINAL) THEN
BEGIN
OPDATAFINAL = :VDATAINICIAL;
END
END
end

Você também pode gostar