Marcos Fabrício Corso escreveu:
> nao deu certo essa rotina, os campos continuam em minusculo ...
>  
>  
> Atenciosamente,
> Marcos Fabrício Corso
> Analista de Sistemas Júnior
> JM Informática
> (41)  3352-2688
> [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> 
>     ----- Original Message -----
>     *From:* Sebastian Selau Webber Colombo <mailto:[EMAIL PROTECTED]>
>     *To:* Grupo de Usuários do PostgreSQL no Brasil
>     <mailto:brasil-usuarios@pgfoundry.org>
>     *Sent:* Monday, October 30, 2006 2:56 PM
>     *Subject:* Re: [PostgreSQL-Brasil] alterar nome da tabela e do campo
> 
>     abre o pgadin e seleciona um database.
>     depois vai no menu Tools > Query Tool
>      
>     no editor de sql, tu cola código que o pessoal indicou acima e
>     aperta o botão F5.
>      
>     para executar a função criada é só digitar:
>     select toLowerTablesAndFields()
> 
>      
> 
>     PS: caso de algum problema do tipo:
>     ERROR:  language "plpgsql" does not exist
>     HINT:  Use CREATE LANGUAGE to load the language into the database.
>      
>     dae tu cria a linguagem procedural nesta database:
>      
>      CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql'
>       HANDLER plpgsql_call_handler
>       VALIDATOR plpgsql_validator;
>      
>     cero então?
>      
>     Forte abraço!
> 
> 
>      
>     On 10/30/06, *Marcos Fabrício Corso* <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>> wrote:
> 
>         sobre esta rotina, como devo executar  ???
>         uso o postgres 8.1 com pgadmin III        ???
>          
>          
>         Atenciosamente,
>         Marcos Fabrício Corso
>         Analista de Sistemas Júnior
>         JM Informática
>         (41)  3352-2688
>         [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> 
>             ----- Original Message -----
>             *From:* Thiago Risso <mailto:[EMAIL PROTECTED]>
>             *To:* Grupo de Usuários do PostgreSQL no Brasil
>             <mailto:brasil-usuarios@pgfoundry.org>
>             *Sent:* Thursday, October 19, 2006 1:52 PM
>             *Subject:* Re: [PostgreSQL-Brasil] alterar nome da tabela e
>             do campo
> 
>              
>             Sim...
>             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] <mailto:[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


Atenção para:
AND n.nspname ='teste'

A rotina só está tratando o esquema 'teste'.
É o seu caso?

[]s
Osvaldo

                
_______________________________________________________ 
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. 
Registre seu aparelho agora! 
http://br.mobile.yahoo.com/mailalertas/ 
 

_______________________________________________
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