Calculando o módulo 11 em PL/SQL


Bastante gente tem dúvidas em como calcular o módulo 11 utilizando o PL/SQL, eu vou mostrar como criar uma Function para você poder obter o módulo 11 para o dígito verificar de qualquer parte de uma aplicação na plataforma Oracle (seja Forms, outros trechos de PL/SQL no banco e assim vai) e também para facilitar a manutenção e futuras alterações.

Bem vamos então ao código:

CREATE OR REPLACE FUNCTION "mod_11" (numero number)
return VARCHAR2 is
retorna number;
aux number(3);

aux := mod((to_number(SUBSTR(numero,1,1))*3 +
to_number(SUBSTR(numero,2,1))*2 +
to_number(SUBSTR(numero,3,1))*9 +
to_number(SUBSTR(numero,4,1))*8 +
to_number(SUBSTR(numero,5,1))*7 +
to_number(SUBSTR(numero,6,1))*6 +
to_number(SUBSTR(numero,7,1))*5 +
to_number(SUBSTR(numero,8,1))*4 +
to_number(SUBSTR(numero,9,1))*3 +
to_number(SUBSTR(numero,10,1))*2)*10,11);

return nvl(aux,0);

Pronto, isso irá retornar o módulo 11 para você. O módulo 11 é muito utilizado para validar alguma sequencia numérica como números bancários, CPF, etc.

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.