Validar Rut Chileno en PL/SQL,Duda

phpmaster
24 de Noviembre del 2005
Como puedo validar el rut chileno en Oracle y PL/SQL

JUANMAIB
24 de Noviembre del 2005
aqui te paso la funcion... esta escrita en C

Boolean VerificaRUT(char *rutP)
{
Int16 i,Sum,v;
char dig_veri,d;

if(StrLen(rutP)!=9) //compruebo que el tamaño siempre sea 9
return false;

for(i=0;i<8;i++) // compruebo que todos los digitos sean numericos ( sin contar el verificador)
if (rutP[i] < \'0\' || rutP[i] > \'9\')
return false;

for(i=7,v=2,Sum=0;(i>=0);i--,v++){//itero a travez del rut para generar el checksum
if(v>7) v -=6;
Sum += (rutP[i] - \'0\') * v;
}

d = 11 - (Sum - 11 * (Sum / 11));
switch(d){
case 10:
dig_veri = \'K\';break; //en caso del digito ser 10 pongo 0
case 11:
dig_veri = \'0\';break; //en caso del digito ser 11 pongo K
default:
dig_veri = d+\'0\'; break;
}
return (rutP[8] == dig_veri);//si coincide devuelvo true
}