Se as pessoas ouvissem mais o nobre senhor Osvaldo Kussama, menos sistemas ruins existiriam no mercado.
Vale a pena lembrar que se você guarda um número com o tipo de dados numérico, a chance de você cometer um erro de validação diminui drásticamente, na exibição e na gravação. Se você guardar dados numéricos como texto, como garante que é um número que está guardado lá? O pontos, virgulas, letras e o que mais aparecerem podem ser gravados junto com o CPF. OBS: para o dígito do RG, você precisa de um campo CHAR(1) separado, pois alguns estados colocam letras no dígito. Na verdade um bom RG tem 4 campos: Número, Dígito, Órgão emissor e data de emissão. Vale a pena lembrar que se você não utilizar os 4 campos no seu RG, não vai garantir a unicidade do número. Coloque depois uma restrição UNIQUE sobre os 4 campos e seja feliz. E só para reforçar, o Osvaldo pode errar, mas pensem bem andes de contradizer alguém que realmente sabe o que está falando. O to_char que ele mostrou é um exemplo de como as coisas simples devem ser simples. E eficientes!!! []s Em 8 de novembro de 2010 23:39, Marcone <marconepe...@gmail.com> escreveu: > >> <osvaldo.kuss...@gmail.com> escreveu: > > >>> Creio que você está fazendo uma confusão entre o formato de > >>> armazenamento e o formato de exibição. > >>> O número 1 = 01 = 001 etc, a cadeia de caracteres "1" realmente é > >>> diferente de "01" ou "001" mas tanto o CPF quanto o CNPJ são códigos > >>> numéricos, ou seja, zeros a esquerda não alteram seu significado. > >>> > > Nobre Osvaldo, > Não estou fazendo confusão nenhuma, o Charles Viana deu um exemplo do > que eu quiz dizer. > > Discordo do Emerson na criação das funções. Acho que com elas chama-se > uma responsabilidade que é da camada de apresentação para o banco de > dados. Já com "to_char" seria uma boa opção em virtude da montagem do > "select" ser feita pela camada de apresentação. > > > Apenas para simplificar suas funções de formatação poderiam ser apenas: > > SELECT to_char(1234567890,'000"."000"."000"-"00') AS cpf; > > SELECT to_char(1234567000199,'00"."000"."000"/"0000"-"00') AS cnpj; > > Abraço a todos. > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > -- blog: http://www.midstorm.org/~telles/ e-mail / jabber: fabio.tel...@gmail.com
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral