18 de janeiro de 2012

Máscara CPF e CNPJ Oracle

Ola amigos!

Atualmente em meu emprego trabalho bastante com Banco de Dados, ORACLE, desenvolvendo consultas, relatórios e dando manutenção em registros. Como eu, também existem várias pessoas que trabalham com Banco de Dados e sempre precisamos criar máscaras para retorno de campos.

Hoje (18/01/2012) estava precisando criar uma relação com informação de CPF das pessoas, e não estava achando um jeito fácil de retornar o CPF com máscara. Por isso comecei a fazer uma pesquisa para descobrir se existe uma maneira de fazer isso.

Encontrei um código, não é simples, mas traz o resultado esperado e acho que vai ajudar muitas pessoas. 
Irei fazer algumas explicações sobre o código e darei algumas dicas para que a sua consulta fique sem erros. O código encontrasse abaixo.


-- Para gerar máscara do CPF
Decode(cpf, NULL,NULL,Translate(To_Char(cpf/100,'000,000,000.00'),',.','.-')) AS cpf_com_mascara

-- Para gerar máscara do CNPJ
Decode(cnpj,NULL,NULL,REPLACE(REPLACE(REPLACE(To_Char(LPad(REPLACE(cnpj,''),14 ,'0'),'00,000,000,0000,00'),',','.'),' ') ,'.'||Trim(To_Char(Trunc(Mod(LPad(cnpj,14,'0'),1000000)/100),'0000'))||'.' ,'/'||Trim(To_Char(Trunc(Mod(LPad(cnpj,14,'0'),1000000)/100) ,'0000'))||'-')) AS cnpj_com_mascara


Para que o código funcione corretamente deve ser realizada algumas modificações:
  1. Trocar campo "cpf" pelo campo de CPF do seu banco de dados;
  2. Trocar campo "cnpj" pelo campo de CNPJ do seu banco de dados;
  3. Não pode existir CFP ou CNPJ em branco no banco de dados, senão dará erro no retorno da consulta;
  4. Caso queira fazer as duas consultas ao mesmo tempo, basta utilizar a expressão CASE.
Para exemplificar tal código eu criei uma consulta em meu banco de dados o qual está funcionando corretamente. Acesse aqui!
Qualquer duvida só deixar nos comentários que eu ajudarei no que eu puder.
Abraços.

  

0 coments:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.