2009/8/31 André Pignata <andrepign...@gmail.com> > > CREATE OR REPLACE FUNCTION "migracao"."limpa_tabela" () RETURNS boolean AS > $body$ > /* New function body */ > declare > rmsg record; > retorno boolean; > begin > retorno := true; > for rmsg in (select distinct pg_tables.tablename as tabela from > pg_tables > ,pg_class > ,pg_namespace > where > pg_namespace.nspname = 'public' > and pg_tables.schemaname = pg_namespace.nspname > and pg_class.relname = pg_tables.tablename > and pg_class.relnamespace = pg_namespace.oid > ) loop > BEGIN > EXECUTE('delete from '||rmsg.tabela); > EXCEPTION > when integrity_constraint_violation then > retorno := false; > > end; > end loop; > return retorno; > > end; > $body$ > LANGUAGE 'plpgsql' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER; > > <corte> > > André,
Só uma dica, eu recomendo você utilizar o "information_schema" [1] para obter informações do catálogo, trocando a query... select distinct pg_tables.tablename as tabela from pg_tables ,pg_class ,pg_namespace where pg_namespace.nspname = 'public' and pg_tables.schemaname = pg_namespace.nspname and pg_class.relname = pg_tables.tablename and pg_class.relnamespace = pg_namespace.oid ...por simplesmente: select table_name as tabela from information_schema.tables where table_schema = 'public'; [1] http://www.postgresql.org/docs/current/static/information-schema.html -- Fabrízio de Royes Mello >> Blog sobre TI: http://fabriziomello.blogspot.com
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral