Función Obtiene Dígito Verificador en PL/pgSQL (PostgreSQL)

CREATE FUNCTION OBTIENE_DRUT (NUMERIC)
RETURNS CHAR AS
$$
DECLARE
SUMA INT := 0;
FACTOR INT := 2;
RUT_AUX INT := $1;
DIG INT;
DV INT;
BEGIN
WHILE(RUT_AUX > 0) LOOP
DIG := RUT_AUX % 10;
IF(FACTOR = 8) THEN
FACTOR := 2;
END IF;
SUMA := SUMA + (DIG * FACTOR);
RUT_AUX := RUT_AUX / 10;
FACTOR := FACTOR + 1;
END LOOP;
DV := 11 - (SUMA % 11);
IF(DV = 10) THEN
RETURN 'K';
ELSIF(DV = 11) THEN
RETURN 0;
ELSE
RETURN DV;
END IF;
END;
$$
LANGUAGE plpgsql;
Etiquetas: Base de Datos, PostgreSQL, Programación
0 Comentarios:
Publicar un comentario
<< Home