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