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',99999999999);
> > >>   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 9999 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"/"9999"-"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

Responder a