Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

FORMATAR CNPJ - PLSQL

SELECT
    substr(rpad(cnpj, 14, 0), 1, 2)
    || '.'
    || substr(rpad(cnpj, 14, 0), 3, 3)
    || '.'
    || substr(rpad(cnpj, 14, 0), 6, 3)
    || '/'
    || substr(rpad(cnpj, 14, 0), 9, 4)
    || '-'
    || substr(rpad(cnpj, 14, 0), 13, 2)    
FROM
    cliente
WHERE
    id = 7;
1 resposta
solução!

Olá, Wallison, tudo bem?

Desde já peço desculpas pela demora em obter retorno.

Em relação ao seu código tenho um ponto de melhoria.

Notei que você fez uma consulta select, fazendo a busca pelo id correspondente. No entanto, é solicitado que essa transformação seja feita com uma procedure.

Portanto, a procedure ficará assim:

CREATE OR REPLACE PROCEDURE formata_cnpj (
    p_CNPJ IN CLIENTE.CNPJ%type, 
    p_CNPJ_SAIDA OUT CLIENTE.CNPJ%type
)
IS
BEGIN
    p_CNPJ_SAIDA := SUBSTR(p_CNPJ,1,2) || '/' || SUBSTR(p_CNPJ,3,2) || '-' || SUBSTR(p_CNPJ,5,1);
END;

A procedure formata_cnpj é criada para formatar um CNPJ de 5 dígitos no formato 68/09-0. Ela recebe o CNPJ original como parâmetro e retorna o CNPJ formatado na variável de saída. A formatação é realizada utilizando a função SUBSTR para extrair partes específicas do CNPJ original e o operador de concatenação || para unir as partes no formato desejado.

Aproveito para comunicar que esse curso ganhou uma versão atualizada: Oracle PL/SQL: procedures, funções e exceções.

Espero ter ajudado. Caso surja alguma dúvida, fico à disposição.

Abraços e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software