quarta-feira, 4 de setembro de 2013
Arrumando CNPJ no banco de dados
CREATE OR replace FUNCTION Arruma_cnpj (cnpj IN VARCHAR2)
RETURN VARCHAR2
IS
tamahocnpj NUMBER;
diferenca NUMBER;
novocnpj VARCHAR2(100);
mascarazero VARCHAR2(20);
BEGIN
novocnpj := Replace(cnpj, '.', '');
novocnpj := Replace(novocnpj, '/', '');
novocnpj := Replace(novocnpj, '-', '');
novocnpj := Replace(novocnpj, ' ', '');
novocnpj := Translate(novocnpj, 'âàãáäÂÀÃÁÄêèẽéëÊÈẼÉËîìĩíïÎÌĨÍÏôòõóöÔÒÕÓÖûùũúüÛÙŨÚÜñỹṽçÑỸṼÇ', 'AAAAAAAAAAEEEEEEEEEEIIIIIIIIIIOOOOOOOOOOUUUUUUUUUUNYVCNYVC');
novocnpj := Regexp_replace(novocnpj, '[a-zA-Z\ ]', '');
tamahocnpj := Length(novocnpj);
IF tamahocnpj IS NULL THEN
tamahocnpj := 0;
END IF;
diferenca := 14 - tamahocnpj;
IF diferenca > 0 THEN
mascarazero := '00000000000000000000';
novocnpj := Substr(mascarazero, 0, diferenca)|| novocnpj;
END IF;
novocnpj := Substr(novocnpj, 0, 2) || '.'
|| Substr(novocnpj, 3, 3) || '.'
|| Substr(novocnpj, 6, 3) || '/'
|| Substr(novocnpj, 9, 4) || '-'
|| Substr(novocnpj, 13, 2);
RETURN novocnpj;
END arruma_cnpj;
Assinar:
Postar comentários (Atom)
Foi evidenciado que de fato a função funciona conforme o esperado.
ResponderExcluir