3
respostas

PROCEDURE formata_cnpj

Olá pessoal! Criei a PROCEDURE formata_cnpj incluindo a quantidade correta de CNPJ e os pontos, traço, etc:

create or replace PROCEDURE formata_cnpj
(p_CNPJ IN OUT CLIENTE.CNPJ%type)
IS
BEGIN
    p_CNPJ:= SUBSTR(p_CNPJ,1,2) || '.' || SUBSTR(p_CNPJ,3,3) || '.' || SUBSTR(p_CNPJ,6,3) || '/' || SUBSTR(p_CNPJ,9,4) || '-' || SUBSTR(p_CNPJ,13,2);
END;

Ao realizar o EXECUTE incluir_cliente (3, 'SUPERMERCADO LTDA',04737552000162,1,120000);

Faz a inclusão sem incluir o zero a esquerda do CNPJ, gostaria de saber como corrigir para atender o CNPJ 04.737.552/0001-62. Obrigado

3 respostas

Olá,

Você pode usar LPAD(, , '0') para formatar com "leading zeros", exemplo:

LPAD(4, 2, '0') # retorna 04
LPAD(14, 2, '0') # retorna 14
LPAD(143, 5, '0') # retorna 00143

No seu caso seria passar sua SUBSTR como primeiro parâmetro e 2 casas decimais de "leading zeros".

Abs

Olá Bruno, obrigado pelo retorno.

Até tentei o LPAD mais não consegui chegar a um resultado satisfatório que atendesse a solicitação aplicada.

Abs

Mais alguém?