Vlew Joao...
Obrigado pelo esclarecimento !

On 10/19/06, joao cosme de oliveira junior <[EMAIL PROTECTED] > wrote:
Se vc criar entre aspas duplas ele fica case sensitive

Em Quinta 19 Outubro 2006 13:03, Thiago Risso escreveu:
> A funcao ficaria mais ou menos assim :
>
> 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 NOT IN ('pg_catalog', 'pg_toast', 'information_schema');
>     LOOP
>         table := recTables.relname;
>         lowerTable := lower(table);
>         schema :=recTables.nspname;
>         EXECUTE 'BEGIN;'
>         EXECUTE 'ALTER TABLE '||schema||'.'||table||' RENAME TO
> tmp_'||lowerTable;
>         EXECUTE 'ALTER TABLE '||schema||'.tmp_'||lowerTable||' RENAME TO
> '||lowerTable;
>         EXECUTE 'COMMIT';
>
>         -- 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.attisdroppedAND c.relname = table
>         LOOP
>             field:=recFields.attname;
>             lowerField := replace('_tmp','',lower(field));
>             EXECUTE 'BEGIN;'
>             EXECUTE 'ALTER TABLE '||schema||'.'||lowerTable||' RENAME
> COLUMN '||field||' TO tmp_'||lowerField;
>             EXECUTE 'ALTER TABLE '||schema||'.'||lowerTable||' RENAME
> COLUMN tmp_'||lowerField||' TO '||lowerField;
>             EXECUTE 'COMMIT';
>         END LOOP;
>     END LOOP;
>     RETURN 'Acabou!!';
> END;
> $BODY$
>   LANGUAGE 'plpgsql' VOLATILE;
>
> para executar :
>
> bdTeste=# SELECT toLowerTablesAndFields();
>
>  tolowertablesandfields
> ------------------------
>  Acabou!!
> (1 row)
>
>
> ...
>
> Mas uma pergunta : "O PG é insensitivo a isso.
> Pq voce quer alterar os nomes das tabelas e campos? Para Padronizar?"
>
> Eu tentei criar aqui em maiusculo, mas ele automaticamente converteu para
> minusculo ..
>
> Bom, de qq forma ta ai ..
>
> 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

Responder a