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

Reply via email to