Senhores, boa tarde!

Elaborei aqui rapidinho, veja se ajuda:

DO $$

DECLARE

    tabela VARCHAR;

    maiordata TIMESTAMP WITHOUT TIME ZONE;

BEGIN

    FOR tabela IN SELECT pg_tables.tablename

                        FROM pg_tables

                        WHERE pg_tables.schemaname='public' AND
pg_tables.tablename LOOP

                        EXECUTE 'SELECT max(data) FROM '||tabela INTO
maiordata;

                        RAISE NOTICE '% - %',tabela,maiordata;
    END LOOP;

    END

$$;

[]s

2015-10-27 14:32 GMT-02:00 Alessandro Lima <[email protected]>:

> Este SQL gera dinamicamente o select desejado:
>
> SELECT 'SELECT MAX(data) AS maior_data FROM ('||array_to_string(array(
> SELECT 'SELECT max('||column_name||') AS data FROM '||table_name
> FROM information_schema.columns
> WHERE table_schema = 'public'
> AND column_name   = 'data'
> ),' union ')||') as t' AS selects;
>
>
> Atenciosamente,
> Alessandro Lima
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a