Oracle - rut

 
Vista:

rut

Publicado por hsantander (24 intervenciones) el 16/02/2005 14:03:38
hola amigos del foro,
Tengo el siguiente problema, cree una funcion para validar el rut, funciona bien hasta que le ingreso un rut con digito verificador K.

Alguien tiene una que funcione bien?
esta es la funcion que tengo

create or replace function vrut(prut in varchar)
return integer is
vdig integer :=0;
vsuma integer :=0;
resultado integer :=0;
begin
vsuma := substr(prut,1,1) * 3;
vsuma := vsuma + substr(prut,2.1) * 2;
vsuma := vsuma + substr(prut,4.1) * 7;
vsuma := vsuma + substr(prut,5.1) * 6;
vsuma := vsuma + substr(prut,6.1) * 5;
vsuma := vsuma + substr(prut,8.1) * 4;
vsuma := vsuma + substr(prut,9.1) * 3;
vsuma := vsuma + substr(prut,10.1) * 2;
while (vsuma > 11) loop
vsuma := vsuma - 11;
end loop;
vdig := 11 - vsuma;
if(vdig = 11) and (substr(prut,12,1) = 'k') then
resultado := 1;
if(vdig = 10) and (substr(prut,12,1) = 0) then
resultado := 1;
else
resultado := 0;
end if;
return(resultado);
end;
/

que hago para arreglarla?????
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder