miércoles, 7 de septiembre de 2011

Valida Rut Chileno en Pl/Sql

FUNCTION VALIDA_RUT ( p_rut in number,
                                                   p_dv  in varchar2) RETURN boolean IS

   v_rut varchar2(9);
   v_dv1 varchar2(1); 
   v_dv2 varchar2(1);

 BEGIN 
     v_rut   := lpad(p_rut,9,'0');
     v_dv1 := p_dv;
     v_dv2 := substr('123456789K0',11-mod(to_number(substr(v_rut,1,1))*4 +
                                       to_number(substr(v_rut,2,1))*3 +
                                       to_number(substr(v_rut,3,1))*2 +
                                       to_number(substr(v_rut,4,1))*7 +
                                       to_number(substr(v_rut,5,1))*6 +
                                       to_number(substr(v_rut,6,1))*5 +
                                       to_number(substr(v_rut,7,1))*4 +
                                       to_number(substr(v_rut,8,1))*3 +
                                       to_number(substr(v_rut,9,1))*2,11),1);

   if v_dv1 = v_dv2 then
      return(TRUE);
   else
      return(FALSE);
  end if;

  exception
   when others then
   return(FALSE);
END;

Inicio

Bienvenido todo el mundo ...

Me presento : soy un informático desde hace casi el año 94 aproximadamente, específicamente Consultor
de Aplicaciones, y durante todo este tiempo me he dado cuenta que las tecnologías cambian pero los
problemas siguen siendo casi los mismos, y por lo tanto, las soluciones encontradas se repiten en gran
medida, cambiando algo acá y otra cosa por allá.

Por lo anterior, y ante la necesidad de mantener una fuente de información accesible en todo momento ( qué
mejor que en Internet ), decidí colocar mis Tips personales en este Blog, con el fin de ayudar a los que están
empezando, y con el firme convencimiento que lo que se comparte se devuelve con creces.

Aporten, si así lo desean, corrijan si lo estiman conveniente, pero aprovéchenlo.

Bienvenidos !