Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/07/2010, 20:38
diegonazho
 
Fecha de Ingreso: enero-2009
Mensajes: 142
Antigüedad: 15 años, 10 meses
Puntos: 1
validar rut plpgsql

holas emm tengo mi bd con el campo rut_empleado character varying de 10 eh visto codigos y no me funcan dejo uno porsiaca
Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION digito_verificador(CHARACTER VARYING)
  2. RETURNS CHAR AS '
  3. DECLARE
  4.     rut ALIAS FOR $1;
  5.     rut_cero varchar(8);
  6.     valor int;
  7. BEGIN
  8.     valor := 0;
  9.     rut_cero := lpad(rut,8,''0'');
  10.  
  11.     valor := valor + (substring(rut_cero,8,1)::int8)*2;
  12.     valor := valor + (substring(rut_cero,7,1)::int8)*3;
  13.     valor := valor + (substring(rut_cero,6,1)::int8)*4;
  14.     valor := valor + (substring(rut_cero,5,1)::int8)*5;
  15.     valor := valor + (substring(rut_cero,4,1)::int8)*6;
  16.     valor := valor + (substring(rut_cero,3,1)::int8)*7;
  17.     valor := valor + (substring(rut_cero,2,1)::int8)*2;
  18.     valor := valor + (substring(rut_cero,1,1)::int8)*3;
  19.  
  20.     valor := valor % 11;
  21.  
  22.     IF valor =1 THEN
  23.         RETURN ''K'';
  24.     END IF;
  25.     IF valor =0 THEN
  26.         RETURN ''0'';
  27.     END IF;
  28.     IF valor>1 AND valor<11 THEN
  29.         RETURN (11-valor)::char;
  30.     END IF;
  31. END
  32. ' LANGUAGE plpgsql;


ahi dejo un codigo pa ver si alguien me ayuda a modificarlo :D