Re: [pgbr-geral] sql formatar nome

2011-02-08 Por tôpico Marcelo da Silva
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

2011-02-08 Por tôpico Lima - Lojas Fricke Ltda
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-02-08 Por tôpico Leonardo Cezar
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

2011-02-08 Por tôpico Beto Lima
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-02-08 Por tôpico Leonardo Cezar
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

2011-02-08 Por tôpico Lima - Lojas Fricke Ltda
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-02-08 Por tôpico Leonardo Cezar
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

2011-02-08 Por tôpico Tiago Valério
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

2011-02-08 Por tôpico Alexsander Rosa
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

2011-02-08 Por tôpico Tiago Valério
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

2011-02-08 Por tôpico Eder Sousa
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

2011-02-08 Por tôpico Fabrízio de Royes Mello
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

2011-02-08 Por tôpico Eder Sousa
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

2011-02-08 Por tôpico Emanuel Araújo

 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

2011-02-08 Por tôpico Juliano Benvenuto Piovezan
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-02-08 Por tôpico Sebastian SWC
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-02-08 Por tôpico Sebastian SWC
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