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