[firebase-br] Tabelas temporárias com select

Gladiston Santana gladiston em vidy.com.br
Seg Maio 30 14:04:47 -03 2016


Um exemplo de uso que faço com GTT:
CREATE GLOBAL TEMPORARY TABLE GTT_CLIENTES_RANKING (
    RAZAO_SOCIAL       D_NOMECOMPLETO PRIMARY KEY,
    RANKING            INTEGER,
    SOMA_RECEBIDOS     numeric(18,2),
    SOMA_ABERTOS       numeric(18,2),
    SOMA_PERDIDOS      numeric(18,2),
    SOMA_CANCELADOS    numeric(18,2),
    SOMA_FECHADOS      numeric(18,2),
    SOMA_DESISTENCIAS  numeric(18,2),
    FOLLOWUPS_PENDENTES    INTEGER
) ON COMMIT PRESERVE ROWS;

Depois é só fazer insert/update/delete como qualquer outra tabela, de
diferente -- é o que vocÊ ja deve saber --, tudo se passa na RAM e portanto
ideal para realizar procedimentos que envolvam calculos mais longos, um
pré-processamento, no meu caso, só tem uso prático dentro de procedures,
mas o que não impede de fazê-lo para produzir relatórios no lado cliente. A
velocidade é impressionantemente, tenho exemplos de trabalhos de 20 minutos
foram resolvidos em segundos.

Voce *pode popular* uma GTT a partir de uma query com insert into...select
from, mas diferente do MSSQL, você *nao pode criar* dinamicamente uma GTT a
partir dos resultados duma query(select..into), a GTT tem que estar
previamente criada. Se estiver pensando em retornar algo para o lado
cliente, uma solução ainda melhor, é usar o datasnap do delphi e deixar o
processamento pesado fora do FB e podendo ser distribuído.

inte+



Mais detalhes sobre a lista de discussão lista