Só de curiosidade, como vc trataria a questão do zero à esquerda? Por exemplo, se vc guarda o valor 02312142007
como número (por exemplo, se for no banco de dados, em uma coluna do tipo NUMBER
), o que será gravado será o valor numérico 2312142007
(o zero "se perde", já que do ponto de vista do valor numérico, ele é irrelevante).
As "soluções" (gambiarras) que eu já vi envolvem converter o número para string e ver o tamanho (se menor que 11, adiciona o zero), etc. Coisas que não seriam necessárias se já estivesse guardado como VARCHAR
.
E provavelmente foi esse o motivo do já mencionado erro no sistema da Caixa. Se o zero à esquerda faz diferença, se o dado é uma informação que serve mais - ou apenas - como identificador, se ele não representa uma quantidade e/ou não faz sentido realizar cálculos com ele, são fortes indícios de que não deveria ser guardado como número, e sim como texto. E documentos como o CPF e CNPJ preenchem todos esses requisitos, então são fortíssimos candidatos a serem tratados como texto.
Vc pode até achar que não tem maneira correta, mas com certeza existem soluções com menos desvantagens e menor propensão a erros. E tratar CPF/CNPJ (e telefone, RG, CEP, matrícula/códigos diversos - e até mesmo o número do endereço, pois há casos em que a casa é "s/n", por exemplo) como texto possui mais vantagens do que desvantagens.