Firebird - Fazendo Um Loop Nas Tabelas Usando o Execute Statment

Post on 04-Oct-2015

7 views 1 download

description

Firebird

Transcript of Firebird - Fazendo Um Loop Nas Tabelas Usando o Execute Statment

Fazendo um Loop nas Tabelas usando o Execute Statment

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.

TabelasCampo

Documento1DataInicialDocumento2DataInicialDocumento3DataInicialDocumento4DataInicial

CREATE PROCEDURE SP_DOCUMENTO_MENORDATARETURNS (OPDATAFINAL DATE)ASDECLARE VARIABLE VNOMETABELA VARCHAR(100);DECLARE VARIABLE VDATAINICIAL DATE;DECLARE VARIABLE VSQL VARCHAR(1000);beginOPDATAFINAL = CURRENT_DATE;FORSELECT DISTINCT T.RDB$RELATION_NAME TABELAFROM RDB$USER_PRIVILEGES TWHERE T.RDB$RELATION_NAME NOT LIKE RDB$% AND T.RDB$OBJECT_TYPE=0 AND T.RDB$RELATION_NAME LIKE DOCUMENTO%ORDER BY 1INTO :VNOMETABELADOBEGINVSQL = ;VSQL = SELECT MIN(DATAINICIAL) FROM || :VNOMETABELA;EXECUTE STATEMENT VSQL INTO :VDATAINICIAL;IF (:VDATAINICIAL < :OPDATAFINAL) THENBEGINOPDATAFINAL = :VDATAINICIAL;ENDENDend