funcion valida rut
Publicado por hsantander (24 intervenciones) el 11/02/2005 14:00:13
Hola, alguien tiene una funcion para validar el rut?
yo tengo esta pero me arroja eerror al ingresar un rut con digito verificador k
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;
/
espero que alguien me pueda ayudar, el rut para probarla es 11.111.112-k
yo tengo esta pero me arroja eerror al ingresar un rut con digito verificador k
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;
/
espero que alguien me pueda ayudar, el rut para probarla es 11.111.112-k
Valora esta pregunta


0