Alterou todas as tabelas (apenas 2 que criei para teste) e seus respectivos campos !
On 10/19/06, joao cosme de oliveira junior <
[EMAIL PROTECTED]> wrote:
funcionou?
Em Quinta 19 Outubro 2006 13:59, Thiago Risso escreveu:
> Depois do toque do João.... Fiz alguns ajustezinhos :
>
> CREATE OR REPLACE FUNCTION toLowerTablesAndFields()
> RETURNS text AS
> $BODY$
> DECLARE
> recTables RECORD;
> recFields RECORD;
> lowerTable varchar;
> lowerField varchar;
> table varchar;
> field varchar;
> schema varchar;
> BEGIN
> -- SELECIONA AS TABELAS E ESQUEMAS
> FOR recTables IN SELECT n.nspname,relname FROM pg_catalog.pg_class c
> JOIN
> pg_catalog.pg_roles r ON r.oid = c.relowner LEFT JOIN
> pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE relkind = 'r'
> AND n.nspname ='teste' --NOT IN ('pg_catalog', 'pg_toast',
> 'information_schema')
> LOOP
> table := recTables.relname;
> lowerTable := lower(table);
> schema :=recTables.nspname;
> EXECUTE 'ALTER TABLE "'||schema||'"."'||table||'" RENAME TO
> "tmp_'||lowerTable||'"' ;
> EXECUTE 'ALTER TABLE "'||schema||'"."tmp_'||lowerTable||'"
> RENAME TO "'||lowerTable||'"';
>
> -- SELECIONA OS CAMPOS DA TABELAS
> FOR recFields IN SELECT a.attname FROM pg_catalog.pg_attribute
> a JOIN pg_catalog.pg_class
> c on c.oid = a.attrelid WHERE a.attnum > 0 AND NOT
> a.attisdropped AND
> c.relname = table
> LOOP
> field:=recFields.attname;
> lowerField := lower(field);
> EXECUTE 'ALTER TABLE "'||schema||'"."'||lowerTable||'"
> RENAME COLUMN "'||field||'" TO "tmp_'||lowerField||'"';
> EXECUTE 'ALTER TABLE "'||schema||'"."'||lowerTable||'"
> RENAME COLUMN "tmp_'||lowerField||'" TO "'||lowerField||'"';
> END LOOP;
>
>
> END LOOP;
> RETURN 'Acabou!!';
> END;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE;
>
> Att:
> Thiago Risso
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios
_______________________________________________ Grupo de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o manual http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios