Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the breadcrumb-navxt domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/devtools/public_html/blog/wp-includes/functions.php on line 6131

Deprecated: A função WP_Dependencies->add_data() foi chamada com um argumento que está obsoleto desde a versão 6.9.0! Os comentários condicionais do IE são ignorados por todos os navegadores compatíveis. in /home/devtools/public_html/blog/wp-includes/functions.php on line 6131
Função para formatar CPF no MySQL

Função para formatar CPF no MySQL

O Cadastro de Pessoa Física, popular CPF, além de outros documentos pessoais são únicos para cada pessoa, e todos possuem um formato especifico.

Os documentos de identidade possuem uma formatação especifica para cada unidade federativa, não sendo possível especificar um formato padrão.

Mas o CPF é um documento Federal, logo, podemos estipular seu formato padrão, vamos a ele:

###.###.###-##

Este é o formato utilizado, mas lhe pergunto, este é o valor que você esta armazenado no seu banco de dados?

Creio que não, mas para apresentar o cpf no formato mas amigável em nossos sistemas, precisamos do auxílio da função abaixo.

 DELIMITER $  
 CREATE FUNCTION `fun_formata_cpf`(p_cpf varchar(20)) RETURNS varchar(14) CHARSET utf8  
 BEGIN  
 declare l_ret varchar(14);  
 -- Retirando possiveis formatacoes no valor recebido.  
 set p_cpf = replace(p_cpf,'.','');  
 set p_cpf = replace(p_cpf,'-','');  
 set p_cpf = replace(p_cpf,' ','');  
 set p_cpf = trim(p_cpf);  
 -- Armazenando o valor recebido em uma variavel interna  
 set l_ret = p_cpf;  
 -- Montando a formatacao  
 set l_ret = concat(mid(l_ret,1,3),'.',mid(l_ret,4,3),'.',mid(l_ret,7,3),'-',mid(l_ret,10,2));  
 -- Retornando o resultado  
 return l_ret;  
 END  

Como de praste, vamos explicar.

1º – A função tem como parâmetro de entrada um valor alfanumerico, com 20 posições, aqui representado pelo p_cpf.

2º – Declaro a variável l_ret que apresentará o resultado final, ou seja, o cpf formatado.

3º – Retiro possíveis caracteres existêntes no parâmetro de entrada.

4º – Seto a variável l_ret para receber o valor já manipulado do parâmetro de entrada p_cpf.

5º – Seto a variável l_ret com ela mesma, realizando uma concatenação das posições.
No caso, uso o mid para separar os grupos, e concatena-los com os pontos e o traço, mas também podemos utilizar o substring, que tem o mesmo efeito do mid.

6º – Retorno a função o resultado final, o cpf formatado.

Com a função acima, você pode realizar uma derivação, prepando-a para formatar também CNPJ, que assim como o cpf, possui formato padrão.

Função criada através do MySQL Workbench 5.2.35 CE – Revisão 7915

Espero mais uma vez ter sido útil, um grande abraço e até a próxima.

7 comentários em “Função para formatar CPF no MySQL”

  1. para CNPJ ficou:

    BEGIN
    declare l_ret varchar(21);
    — Retirando possiveis formatacoes no valor recebido.
    set p_cnpj = replace(p_cnpj,'.','');
    set p_cnpj = replace(p_cnpj,'-','');
    set p_cnpj = replace(p_cnpj,' ','');
    set p_cnpj = trim(p_cnpj);
    set p_cnpj = replace(p_cnpj,'/','');
    — Armazenando o valor recebido em uma variavel interna
    set l_ret = p_cnpj;
    — Montando a formatacao
    set l_ret = concat( mid(l_ret,1,2),'.',mid(l_ret,3,3),'.',mid(l_ret,6,3),'/',mid(l_ret,9,4),'-',mid(l_ret,13,2) );
    — Retornando o resultado
    return l_ret;
    END

Deixe um comentário