Re: [pgbr-geral] Retirar sinais de pontuação de ca mpo text

2007-08-08 Por tôpico flavio cardoso
corrigindo...coloquei caracter a mais agora sim !!!

Em 08/08/07, flavio cardoso <[EMAIL PROTECTED]> escreveu:
>
> assim também deu certo: select translate('012.345.678-90','.-','') as cpf
>
>  cpf
> -
> 01234567890
>
> Em 06/08/07, Osvaldo Rosario Kussama <[EMAIL PROTECTED]>
> escreveu:
> >
> > Euler Taveira de Oliveira escreveu:
> > > Osvaldo Rosario Kussama wrote:
> > >
> > >> Use a função to_number, veja:
> > >> http://www.postgresql.org/docs/8.2/interactive/functions-formatting.html
> >
> > >>
> > >> bdteste=# SELECT to_number('855.999.666-96',999);
> > >>   to_number
> > >> ---
> > >>   855999666
> > >> (1 registro)
> > >>
> > > Eu não utilizaria esta função pois CPFs que iniciam com zero(s) seriam
> >
> > > desconsiderados. Houve até uma discussão recente se não seria adequado
> > > validar a máscara. Eu utilizaria translate ou regexp_replace.
> > >
> > > regression=# select translate(translate('012.345.678-90 ', '-', ''),
> > '.',
> > > '');
> > >   translate
> > > -
> > >  01234567890
> > > (1 registro)
> > >
> > >
> >
> >
> > Euler:
> >
> > Creio que depende do resultado desejado.
> > Se desejar numérico então 01 e 1 são absolutamente iguais e neste caso
> > creio que a função to_number é adequada.
> >
> > bdteste=# SELECT to_number('09.876.543/1234-12','99 999 999  99');
> > to_number
> > ---
> >   9876543123412
> > (1 registro)
> >
> > Se desejar string aí sim '01' e '1' são diferentes. Neste caso creio que
> > o mais simples seja utilizar o regexp_replace:
> >
> > bdteste=# SELECT regexp_replace(' 09.876.543
> > /1234-12','[^[:digit:]]','','g');
> >   regexp_replace
> > 
> >   09876543123412
> > (1 registro)
> >
> > Em minha opinião os campos CPF e CNPJ são numéricos e portanto devem ser
> >
> > declarados desta forma, NUMERIC(14) e NUMERIC(11) respectivamente ou
> > mesmo BIGINT. Quanto a exibição aí sim devemos formatá-los com a máscara
> > adequada:
> >
> > bdteste=# SELECT to_char(9876543123412,'09"."999"."999"/""-"99') as
> > cnpj;
> >  cnpj
> > -
> >09.876.543/1234-12
> > (1 registro)
> >
> > bdteste=# SELECT to_char(987654312,'099"."999"."999"/"99') as cpf;
> > cpf
> > -
> >009.876.543/12
> > (1 registro)
> >
> > Osvaldo
> > ___
> > pgbr-geral mailing list
> > pgbr-geral@listas.postgresql.org.br
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
>
>
>
> --
> Flávio Cardoso




-- 
Flávio Cardoso
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Retirar sinais de pontuação de ca mpo text

2007-08-08 Por tôpico flavio cardoso
assim também deu certo: select translate('012.345.678-9012','.-','') as cpf

 cpf
-
01234567890

Em 06/08/07, Osvaldo Rosario Kussama <[EMAIL PROTECTED]>
escreveu:
>
> Euler Taveira de Oliveira escreveu:
> > Osvaldo Rosario Kussama wrote:
> >
> >> Use a função to_number, veja:
> >>
> http://www.postgresql.org/docs/8.2/interactive/functions-formatting.html
> >>
> >> bdteste=# SELECT to_number('855.999.666-96',999);
> >>   to_number
> >> ---
> >>   855999666
> >> (1 registro)
> >>
> > Eu não utilizaria esta função pois CPFs que iniciam com zero(s) seriam
> > desconsiderados. Houve até uma discussão recente se não seria adequado
> > validar a máscara. Eu utilizaria translate ou regexp_replace.
> >
> > regression=# select translate(translate('012.345.678-90', '-', ''), '.',
> > '');
> >   translate
> > -
> >  01234567890
> > (1 registro)
> >
> >
>
>
> Euler:
>
> Creio que depende do resultado desejado.
> Se desejar numérico então 01 e 1 são absolutamente iguais e neste caso
> creio que a função to_number é adequada.
>
> bdteste=# SELECT to_number('09.876.543/1234-12','99 999 999  99');
> to_number
> ---
>   9876543123412
> (1 registro)
>
> Se desejar string aí sim '01' e '1' são diferentes. Neste caso creio que
> o mais simples seja utilizar o regexp_replace:
>
> bdteste=# SELECT regexp_replace('09.876.543
> /1234-12','[^[:digit:]]','','g');
>   regexp_replace
> 
>   09876543123412
> (1 registro)
>
> Em minha opinião os campos CPF e CNPJ são numéricos e portanto devem ser
> declarados desta forma, NUMERIC(14) e NUMERIC(11) respectivamente ou
> mesmo BIGINT. Quanto a exibição aí sim devemos formatá-los com a máscara
> adequada:
>
> bdteste=# SELECT to_char(9876543123412,'09"."999"."999"/""-"99') as
> cnpj;
>  cnpj
> -
>09.876.543/1234-12
> (1 registro)
>
> bdteste=# SELECT to_char(987654312,'099"."999"."999"/"99') as cpf;
> cpf
> -
>009.876.543/12
> (1 registro)
>
> Osvaldo
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Flávio Cardoso
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Retirar sinais de pontuação de ca mpo text

2007-08-06 Por tôpico Osvaldo Rosario Kussama
Euler Taveira de Oliveira escreveu:
> Osvaldo Rosario Kussama wrote:
> 
>> Use a função to_number, veja:
>> http://www.postgresql.org/docs/8.2/interactive/functions-formatting.html
>>
>> bdteste=# SELECT to_number('855.999.666-96',999);
>>   to_number
>> ---
>>   855999666
>> (1 registro)
>>
> Eu não utilizaria esta função pois CPFs que iniciam com zero(s) seriam
> desconsiderados. Houve até uma discussão recente se não seria adequado
> validar a máscara. Eu utilizaria translate ou regexp_replace.
> 
> regression=# select translate(translate('012.345.678-90', '-', ''), '.',
> '');
>   translate
> -
>  01234567890
> (1 registro)
> 
> 


Euler:

Creio que depende do resultado desejado.
Se desejar numérico então 01 e 1 são absolutamente iguais e neste caso 
creio que a função to_number é adequada.

bdteste=# SELECT to_number('09.876.543/1234-12','99 999 999  99');
to_number
---
  9876543123412
(1 registro)

Se desejar string aí sim '01' e '1' são diferentes. Neste caso creio que 
o mais simples seja utilizar o regexp_replace:

bdteste=# SELECT regexp_replace('09.876.543/1234-12','[^[:digit:]]','','g');
  regexp_replace

  09876543123412
(1 registro)

Em minha opinião os campos CPF e CNPJ são numéricos e portanto devem ser 
declarados desta forma, NUMERIC(14) e NUMERIC(11) respectivamente ou 
mesmo BIGINT. Quanto a exibição aí sim devemos formatá-los com a máscara 
adequada:

bdteste=# SELECT to_char(9876543123412,'09"."999"."999"/""-"99') as 
cnpj;
 cnpj
-
   09.876.543/1234-12
(1 registro)

bdteste=# SELECT to_char(987654312,'099"."999"."999"/"99') as cpf;
cpf
-
   009.876.543/12
(1 registro)

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Retirar sinais de pontuação de ca mpo text

2007-08-06 Por tôpico Thiago Boufleuhr
Uhmmm, nem tinha percebido essa detalhe que por sinal é mto 
importante, legal mesmo!!


Euler Taveira de Oliveira escreveu:
> Osvaldo Rosario Kussama wrote:
>
>   
>> Use a função to_number, veja:
>> http://www.postgresql.org/docs/8.2/interactive/functions-formatting.html
>>
>> bdteste=# SELECT to_number('855.999.666-96',999);
>>   to_number
>> ---
>>   855999666
>> (1 registro)
>>
>> 
> Eu não utilizaria esta função pois CPFs que iniciam com zero(s) seriam
> desconsiderados. Houve até uma discussão recente se não seria adequado
> validar a máscara. Eu utilizaria translate ou regexp_replace.
>
> regression=# select translate(translate('012.345.678-90', '-', ''), '.',
> '');
>   translate
> -
>  01234567890
> (1 registro)
>
>
>   
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Retirar sinais de pontuação de ca mpo text

2007-08-06 Por tôpico Euler Taveira de Oliveira
Osvaldo Rosario Kussama wrote:

> Use a função to_number, veja:
> http://www.postgresql.org/docs/8.2/interactive/functions-formatting.html
> 
> bdteste=# SELECT to_number('855.999.666-96',999);
>   to_number
> ---
>   855999666
> (1 registro)
> 
Eu não utilizaria esta função pois CPFs que iniciam com zero(s) seriam
desconsiderados. Houve até uma discussão recente se não seria adequado
validar a máscara. Eu utilizaria translate ou regexp_replace.

regression=# select translate(translate('012.345.678-90', '-', ''), '.',
'');
  translate
-
 01234567890
(1 registro)


-- 
  Euler Taveira de Oliveira
  http://www.timbira.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] Retirar sinais de pontuação de ca mpo text

2007-08-06 Por tôpico Thiago Boufleuhr
Perfeito !!!

Funcionou bem como eu gostaria.Valeu pela ajuda de todos!!!



Osvaldo Rosario Kussama escreveu:
> Thiago Boufleuhr escreveu:
>   
>>Bom é o seguinte, sei que isso para vocês é mamão com açúcar!!!
>> Como eu faço para retirar sinais de pontuação de um campo TEXT, tpw, 
>> queria retirar todos os pontos, barras e hifens do campo CPF, e depois 
>> processa-lo.como posso fazer isso?
>>
>> Exemplo: 855.999.666-96 -> 85599966696
>>
>> 
>
>
>
> Use a função to_number, veja:
> http://www.postgresql.org/docs/8.2/interactive/functions-formatting.html
>
> bdteste=# SELECT to_number('855.999.666-96',999);
>   to_number
> ---
>   855999666
> (1 registro)
>
> Para o caso geral veja a função regexp_replace em:
> http://www.postgresql.org/docs/8.2/interactive/functions-matching.html
>
> Osvaldo
>
> ___
> 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] Retirar sinais de pontuação de ca mpo text

2007-08-06 Por tôpico Osvaldo Rosario Kussama
Thiago Boufleuhr escreveu:
> 
>Bom é o seguinte, sei que isso para vocês é mamão com açúcar!!!
> Como eu faço para retirar sinais de pontuação de um campo TEXT, tpw, 
> queria retirar todos os pontos, barras e hifens do campo CPF, e depois 
> processa-lo.como posso fazer isso?
> 
> Exemplo: 855.999.666-96 -> 85599966696
> 



Use a função to_number, veja:
http://www.postgresql.org/docs/8.2/interactive/functions-formatting.html

bdteste=# SELECT to_number('855.999.666-96',999);
  to_number
---
  855999666
(1 registro)

Para o caso geral veja a função regexp_replace em:
http://www.postgresql.org/docs/8.2/interactive/functions-matching.html

Osvaldo

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Retirar sinais de pontuação de ca mpo text

2007-08-06 Por tôpico Thiago Boufleuhr
Eu utilizo 8.2.x

Joao escreveu:
> qual tua versao do banco?
> acho q ja fiz algo parecido em plsh no 8.1
> - Original Message - 
> From: "Wallace Reis" <[EMAIL PROTECTED]>
> To: "Comunidade PostgreSQL Brasileira" 
> Sent: Monday, August 06, 2007 4:17 PM
> Subject: Re: [pgbr-geral]Retirar sinais de pontuação de campo text
>
>
> On 8/6/07, Thiago Boufleuhr <[EMAIL PROTECTED]> wrote:
>   
>>Bom é o seguinte, sei que isso para vocês é mamão com açúcar!!!
>> Como eu faço para retirar sinais de pontuação de um campo TEXT, tpw,
>> queria retirar todos os pontos, barras e hifens do campo CPF, e depois
>> processa-lo.como posso fazer isso?
>> Exemplo: 855.999.666-96 -> 85599966696
>> 
>
> Você pode fazer uma função em plperlu usando a função canon_cpf do
> módulo Business::BR::CPF [1].
>
> [1] 
> http://search.cpan.org/~ferreira/Business-BR-Ids-0.00_19/lib/Business/BR/CPF.pm
>
>   
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Retirar sinais de pontuação de ca mpo text

2007-08-06 Por tôpico Joao
qual tua versao do banco?
acho q ja fiz algo parecido em plsh no 8.1
- Original Message - 
From: "Wallace Reis" <[EMAIL PROTECTED]>
To: "Comunidade PostgreSQL Brasileira" 
Sent: Monday, August 06, 2007 4:17 PM
Subject: Re: [pgbr-geral]Retirar sinais de pontuação de campo text


On 8/6/07, Thiago Boufleuhr <[EMAIL PROTECTED]> wrote:
>Bom é o seguinte, sei que isso para vocês é mamão com açúcar!!!
> Como eu faço para retirar sinais de pontuação de um campo TEXT, tpw,
> queria retirar todos os pontos, barras e hifens do campo CPF, e depois
> processa-lo.como posso fazer isso?
> Exemplo: 855.999.666-96 -> 85599966696

Você pode fazer uma função em plperlu usando a função canon_cpf do
módulo Business::BR::CPF [1].

[1] 
http://search.cpan.org/~ferreira/Business-BR-Ids-0.00_19/lib/Business/BR/CPF.pm

-- 
wallace reis/wreis
Núcleo de Biologia Computacional e
Gestão de Informações Biotecnológicas/LABBI
___
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] Retirar sinais de pontuação de ca mpo text

2007-08-06 Por tôpico Thiago Boufleuhr
Uma ótima fica, vou guardar aki o link, Porem fica complicado para mim 
pois tenho um sistema legado e fica complicado em instalar linguagens e 
tudo mais. Eu jah tenho uma funcao em PL/PGSQL, porem quando desenvolvi 
ela, naum me deparei que soh aceitava numeros, sem pontuacaoagora 
sofro para consertar.hehe

teria q ser alguma coisa mais simples, utilizando funcoes do PostgreSQL, 
porem desconheço.


Wallace Reis escreveu:
> On 8/6/07, Thiago Boufleuhr <[EMAIL PROTECTED]> wrote:
>   
>>Bom é o seguinte, sei que isso para vocês é mamão com açúcar!!!
>> Como eu faço para retirar sinais de pontuação de um campo TEXT, tpw,
>> queria retirar todos os pontos, barras e hifens do campo CPF, e depois
>> processa-lo.como posso fazer isso?
>> Exemplo: 855.999.666-96 -> 85599966696
>> 
>
> Você pode fazer uma função em plperlu usando a função canon_cpf do
> módulo Business::BR::CPF [1].
>
> [1] 
> http://search.cpan.org/~ferreira/Business-BR-Ids-0.00_19/lib/Business/BR/CPF.pm
>
>   
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Retirar sinais de pontuação de ca mpo text

2007-08-06 Por tôpico Wallace Reis
On 8/6/07, Thiago Boufleuhr <[EMAIL PROTECTED]> wrote:
>Bom é o seguinte, sei que isso para vocês é mamão com açúcar!!!
> Como eu faço para retirar sinais de pontuação de um campo TEXT, tpw,
> queria retirar todos os pontos, barras e hifens do campo CPF, e depois
> processa-lo.como posso fazer isso?
> Exemplo: 855.999.666-96 -> 85599966696

Você pode fazer uma função em plperlu usando a função canon_cpf do
módulo Business::BR::CPF [1].

[1] 
http://search.cpan.org/~ferreira/Business-BR-Ids-0.00_19/lib/Business/BR/CPF.pm

-- 
wallace reis/wreis
Núcleo de Biologia Computacional e
Gestão de Informações Biotecnológicas/LABBI
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Retirar sinais de pontuação de ca mpo text

2007-08-06 Por tôpico Thiago Boufleuhr
Tem como fazer no proprio Select ? Senão pode ser em PLPGSQL.


Leandro Guimarães Faria Corcete DUTRA escreveu:
> Em Seg, 2007-08-06 às 15:26 -0300, Thiago Boufleuhr escreveu:
>   
>> Como eu faço para retirar sinais de pontuação de um campo TEXT
>> 
>
>   Em que linguagem?
>
>   
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Retirar sinais de pontuação de ca mpo text

2007-08-06 Por tôpico Leandro Guimarães Faria Corcete DUTRA
Em Seg, 2007-08-06 às 15:26 -0300, Thiago Boufleuhr escreveu:
> Como eu faço para retirar sinais de pontuação de um campo TEXT

Em que linguagem?

-- 
Leandro Guimarães Faria Corcete DUTRA  <[EMAIL PROTECTED]>
Atech Fundação Aplicação de Tecnologias Críticas  SP, BR
msnim:[EMAIL PROTECTED]
skype:leandro.gfc.dutra?chat +55 (11) 3040 7300 r151


- - - - -

Politica de Privacidade: Esta mensagem pode conter informacao confidencial e/ou 
privilegiada. Se voce nao for o destinatario ou a pessoa autorizada a receber 
esta mensagem, nao pode usar, copiar ou divulgar as informacoes nela contidas 
ou tomar qualquer acao baseada nessas informacoes. Se voce recebeu esta 
mensagem por engano, por favor avise imediatamente o remetente, respondendo o 
e-mail e em seguida apague-o. Agradecemos sua cooperacao.

Privacy Policy: This message may contain confidential and/or privileged 
information. If you are not the addressee or authorized to receive this for the 
addressee, you must not use, copy, disclose or take any action based on this 
message or any information herein. If you have received this message in error, 
please advise the sender immediately by reply e-mail and delete this message. 
Thank you for your cooperation.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Retirar sinais de pontuação de ca mpo text

2007-08-06 Por tôpico Thiago Boufleuhr
Pessoal,

   Bom é o seguinte, sei que isso para vocês é mamão com açúcar!!!
Como eu faço para retirar sinais de pontuação de um campo TEXT, tpw, 
queria retirar todos os pontos, barras e hifens do campo CPF, e depois 
processa-lo.como posso fazer isso?

Exemplo: 855.999.666-96 -> 85599966696

Att,
Thiago Boufleuhr
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral