Amigo, poderia divulgar o código? Não estou conseguindo validar com o mesmo algorítimo que possuo
IF p_uf = 'DF' THEN
IF length(TRIM(p_nr_inscricao_estadual)) <> 13 OR
substr(p_nr_inscricao_estadual, 1, 2) <> 07 THEN
v_verificador := 'ERRADO';
ELSE
v_calculo := substr(p_nr_inscricao_estadual, 1, 1) * 4;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 2, 1) * 3;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 3, 1) * 2;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 4, 1) * 9;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 5, 1) * 8;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 6, 1) * 7;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 7, 1) * 6;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 8, 1) * 5;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 9, 1) * 4;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 10, 1) * 3;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 11, 1) * 2;
v_digito := 11 - MOD(v_calculo, 11);
IF v_digito >= 10 THEN
v_digito := 0;
END IF;
IF substr(p_nr_inscricao_estadual, 12, 1) <> v_digito THEN
v_verificador := 'ERRADO';
ELSE
v_calculo := substr(p_nr_inscricao_estadual, 1, 1) * 5;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 2, 1) * 4;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 3, 1) * 3;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 4, 1) * 2;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 5, 1) * 9;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 6, 1) * 8;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 7, 1) * 7;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 8, 1) * 6;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 9, 1) * 5;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 10, 1) * 4;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 11, 1) * 3;
v_calculo := v_calculo + substr(p_nr_inscricao_estadual, 12, 1) * 2;
v_digito := 11 - MOD(v_calculo, 11);
IF v_digito >= 10 THEN
v_digito := 0;
END IF;
IF substr(p_nr_inscricao_estadual, 13, 1) <> v_digito THEN
v_verificador := 'ERRADO';
ELSE
v_verificador := 'CERTO';
END IF;
END IF;
END IF;
RETURN v_verificador;
END IF;