Re: [pgbr-geral] sql formatar nome
Fabrizio, muito boa sua ajuda... diga uma coisa tem alguma materia pra podermos entender essa select por partes pra futuras implementações? Por exemplo a parte (a|as|os)[[:blank:]] significa que sempre que tiver um espaco depois de a,as,os ele vai deixas a palavra em minusculo? Mas ai como ele vai saber que é das, dos, de, etc? Interessante esse regexp_replace Marcelo Silva -- Em 7 de fevereiro de 2011 20:06, Fabrízio de Royes Mello fabriziome...@gmail.com escreveu: Em 7 de fevereiro de 2011 18:09, Leonardo Cezar lhce...@gmail.comescreveu: Com um pouquinho mais de criatividade e tempo dá pra resolver melhor, mas é por aqui: SELECT regexp_replace(initcap('leonardo danubio henrique da silva dos santos cezar'), '([[:upper:]])(a|as|os)[[:blank:]]', E'd\\2 ', 'g'); regexp_replace - Leonardo Danubio Henrique da Silva dos Santos Cezar (1 row) Só um ajuste para o caso de existir a preposição de: postgres@bdteste=# SELECT regexp_replace(initcap('fabrizio de royes mello'), '([[:upper:]])(a|as|os|e)[[:blank:]]', E'd\\2 ', 'g'); regexp_replace - Fabrizio de Royes Mello (1 row) Ainda tens de incrementar um pouco essa expressão regular, pois pode existir um nome do tipo: fulano de tal souza e silva Usando a expressão acima fica: postgres@bdteste=# SELECT regexp_replace(initcap('fulano de tal souza e silva'), '([[:upper:]])(a|as|os|e)[[:blank:]]', E'd\\2 ', 'g'); regexp_replace - Fulano de Tal Souza E Silva (1 row) Mas isso fica para tema de casa... -- Fabrízio de Royes Mello Blog sobre TI: http://fabriziomello.blogspot.com Perfil Linkedin: http://br.linkedin.com/in/fabriziomello ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Tuning PostgreSQL
Olá pessoal, Estou configurando um servidor novo, 2 xeon , 2 discos sas 300 e 16 Gb de Ram, Peço ajuda para configurar os parametros do Linux, (sysctl.conf) , e tuning para aproximadamente umas 300 conexões simultaneas (postgresql.conf). Obrigado Lucas. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tuning PostgreSQL
2011/2/8 Lima - Lojas Fricke Ltda l...@fricke.com.br: Estou configurando um servidor novo, 2 xeon , 2 discos sas 300 e 16 Gb de Ram, Peço ajuda para configurar os parametros do Linux, (sysctl.conf) , e tuning para aproximadamente umas 300 conexões simultaneas (postgresql.conf). Ajuda em que? Configurar exatamente o q? Tipo de aplicação? Talvez este documento seja o início, meio e fim: http://www.postgresql.org/docs/9.0/static/kernel-resources.html Abraço! -Leo -- Leonardo Cezar http://postgreslogia.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] linha duplicada
Valeu Leonardo. deu certo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] sql formatar nome
2011/2/8 Marcelo Silva (IG) marc...@ig.com.br: Hum no exemplo: SELECT regexp_replace(initcap('MARCELO ME NARDINI'), '([[:upper:]])(a|as|os|e)[[:blank:]]', E'd\\2 ', 'g'); Ele retorna “Marcelo de Nardini” Veja que ele troca o “ME” por “de” como resolveriamos isso? Troca [[:upper:]] pela letra D. Repare q informei no e-mail inicial q este é apenas o caminho das pedras, ainda falta muito para essa ser uma solução definitiva para teu problema. Aliás, aquele [[:blank:]] deveria ser substituído por \\s+ Abraço! -Leo -- Leonardo Cezar http://postgreslogia.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tuning PostgreSQL
Leonardo, Obrigado pelo link, configurei o sysctl.conf de minha distro para o seguinte: O servidor possui 16 GB de RAM kernel.shmmax = 17179869184 25 % da memória #Original 68719476736 kernel.shmall = 268435456 25% /64 #Original 4294967296 Até ai tudo bem, Quando fui configurar o postgresql.conf shared_buffers = 3GB Ele não inicia dando o erro FATAL: could not create shared memory segment: Não foi possível alocar memória DETAIL: Failed system call was shmget(key=5432001, size=11896537088, 03600). Pode me ajudar? Obrigado . ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tuning PostgreSQL
2011/2/8 Lima - Lojas Fricke Ltda l...@fricke.com.br: Ele não inicia dando o erro FATAL: could not create shared memory segment: Não foi possível alocar memória DETAIL: Failed system call was shmget(key=5432001, size=11896537088, 03600). # sysctl -w kernel.shmmax = 17179869184 ou # echo 17179869184 /proc/sys/kernel/shmmax -Leo -- Leonardo Cezar http://postgreslogia.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Escape tratamento
Pessoal Uma ajuda na sintax abaixo : INSERT INTO ende(logradouro,numero,complemento) SELECT E'130\' O '\' mesmo colocando o E na frente para tratamento de escape ele me retorna um erro.Existira algum parametro de sessao que eu possa alterar para contornar este erro?Sei colocando outra barra o problema é resolvido. Grato desde ja. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Escape tratamento
Não seria E'130\\' com duas contra-barras? Em 8 de fevereiro de 2011 16:47, Tiago Valério tiagosvale...@gmail.comescreveu: Pessoal Uma ajuda na sintax abaixo : INSERT INTO ende(logradouro,numero,complemento) SELECT E'130\' O '\' mesmo colocando o E na frente para tratamento de escape ele me retorna um erro.Existira algum parametro de sessao que eu possa alterar para contornar este erro?Sei colocando outra barra o problema é resolvido. Grato desde ja. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Atenciosamente, Alexsander da Rosa http://rednaxel.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Escape tratamento
Com a \\ é posssivel sim, mas eu consegui tambem alterando os seguintes parametros set escape_string_warning to 'off' set standard_conforming_strings to 'on' Com estes parametro ele faz com os backslash seja interpretado como literal e nao parametro. Valeu pela ajuda!!! Em 8 de fevereiro de 2011 16:55, Alexsander Rosa alexsander.r...@gmail.comescreveu: Não seria E'130\\' com duas contra-barras? Em 8 de fevereiro de 2011 16:47, Tiago Valério tiagosvale...@gmail.comescreveu: Pessoal Uma ajuda na sintax abaixo : INSERT INTO ende(logradouro,numero,complemento) SELECT E'130\' O '\' mesmo colocando o E na frente para tratamento de escape ele me retorna um erro.Existira algum parametro de sessao que eu possa alterar para contornar este erro?Sei colocando outra barra o problema é resolvido. Grato desde ja. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Atenciosamente, Alexsander da Rosa http://rednaxel.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Função para tratamento de Erros
Boa tarde!!! Existe alguma forma de pegar o erro que ocorreu, sem utilizar o exception? Exemplo create or replace function errodivisaoporzero() returns text as $$ declare valor1 integer; valor2 integer; resultado decimal(10,2); begin valor1 = 10; valor2 = 0; resultado = valor1 / valor2 FUNCAO_TESTA_ERRO()-- NESTE PONTO CHAMAR UMA FUNÇÃO GENERICA PARA TRATAMENTO DE ERROS; end $$ language plpgsql volatile; Atenciosamente Eder Sousa ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Função para tratamento de Erros
Em 8 de fevereiro de 2011 17:54, Eder Sousa ederso...@gmail.com escreveu: Boa tarde!!! Existe alguma forma de pegar o erro que ocorreu, sem utilizar o exception? Sem o BEGIN...EXCEPTION... não... create or replace function errodivisaoporzero() returns text as $$ declare valor1 integer; valor2 integer; resultado decimal(10,2); begin valor1 = 10; valor2 = 0; resultado = valor1 / valor2 FUNCAO_TESTA_ERRO()-- NESTE PONTO CHAMAR UMA FUNÇÃO GENERICA PARA TRATAMENTO DE ERROS; end $$ language plpgsql volatile; Tente assim: create or replace function errodivisaoporzero() returns text as $$ declare valor1 integer; valor2 integer; resultado decimal(10,2); begin begin valor1 = 10; valor2 = 0; resultado = valor1 / valor2; exception when others then perform FUNCAO_TESTA_ERRO();-- NESTE PONTO CHAMAR UMA FUNÇÃO GENERICA PARA TRATAMENTO DE ERROS; end; end $$ language plpgsql volatile; -- Fabrízio de Royes Mello Blog sobre TI: http://fabriziomello.blogspot.com Perfil Linkedin: http://br.linkedin.com/in/fabriziomello ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Função para tratamento de Erros
certo.. Me expressei errado... referente a Função eu somente montei como exemplo. Oque eu preciso é.. como fazer para passar como parametro a Exception (Qualquer erro, chave duplicada, check, etc... qualquer coisa ) que ocorreu?? ??? Somente criar uma função na extrutura create or replace function x() returns text as $$ begin EXCEPTION WHEN x THEN RAISE EXCEPTION mensagem1; WHEN y THEN RAISE EXCEPTION mensagem2 end; end $$ language plpgsql volatile; Eder Sousa ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Problema dump/restore e LANGUAGE
Talvez o melhor seja migrar tudo para 9.0 (ou pelo menos o teu ambiente de testes). Por exemplo: server1-prod = 9.0 server1-testes = 9.0 server2-prod = 8.4 server2-prod = 8.4 Pelo menos é isso que eu costumo fazer, sempre a mesma versão para produção/testes. -- Filipe Rio Grande do Sul, Brazil Felipe, nesse caso é isso mesmo que tenho que fazer. Obrigado a todos pelos esclarescimentos. -- *Atenciosamente, Emanuel Araújo* http://eacshm.wordpress.com http://eacshm.wordpress.com.br ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Função para tratamento de Erros
Você pode passar a variável SQLSTATE dentro do tratamento da exceção para outra função e testar o código de erro nessa função, exemplo: CREATE OR REPLACE FUNCTION fun_teste() RETURNS void AS $BODY$BEGIN PERFORM 1 / 0; EXCEPTION WHEN others THEN PERFORM fun_tratar(SQLSTATE); END;$BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100; CREATE OR REPLACE FUNCTION fun_tratar(erro text) RETURNS void AS $BODY$BEGIN CASE erro WHEN '22012' THEN RAISE NOTICE 'ocorreu divisão por zero'; END CASE; END;$BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100; Aqui [1] tem a tabela listando os códigos de erro. [1] http://www.postgresql.org/docs/8.4/static/errcodes-appendix.html#ERRCODES-TABLE 2011/2/8 Eder Sousa ederso...@gmail.com certo.. Me expressei errado... referente a Função eu somente montei como exemplo. Oque eu preciso é.. como fazer para passar como parametro a Exception (Qualquer erro, chave duplicada, check, etc... qualquer coisa ) que ocorreu?? ??? Somente criar uma função na extrutura create or replace function x() returns text as $$ begin EXCEPTION WHEN x THEN RAISE EXCEPTION mensagem1; WHEN y THEN RAISE EXCEPTION mensagem2 end; end $$ language plpgsql volatile; Eder Sousa ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Função para tratamento de Erros
2011/2/8 Eder Sousa ederso...@gmail.com: certo.. Me expressei errado... referente a Função eu somente montei como exemplo. Oque eu preciso é.. como fazer para passar como parametro a Exception (Qualquer erro, chave duplicada, check, etc... qualquer coisa ) que ocorreu?? ??? Somente criar uma função na extrutura create or replace function x() returns text as $$ begin EXCEPTION WHEN x THEN RAISE EXCEPTION mensagem1; WHEN y THEN RAISE EXCEPTION mensagem2 end; end $$ language plpgsql volatile; caso você queria a mensagem de erro que a função retorna ao abortar, utilize a variável SQLERRM[1] [1] http://www.postgresql.org/about/featuredetail/feature.15 -- Atenciosamente, Sebastian Selau Webber Colombo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Reordenar ordem dos campos
2011/2/7 Marcelo Cardoso de Souza marceloc...@gmail.com: Olá a todos, Gostaria de saber de vocês se alguma forma pratica de reordenar os campos dentro da tabela. Não estou falando de order by no select. Exemplo: Tenho um tabela com os campos id, campo1, campo2, campo3, ultimoCampo e quando dou select * ele traz os campos nesta mesma ordem. Eu preciso alterar a ordem dos campos na estrutura da tabela pois meu sistema exige que o ultimoCampo sempre seja o ultimo, mas se eu inserir um novo campo, o novo será o ultimo e isso não pode. Sistema bom esse! rescrever a consulta é uma possibilidade? -- Atenciosamente, Sebastian Selau Webber Colombo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral