Código SQL:
Ver original
CREATE OR REPLACE FUNCTION digito_verificador(CHARACTER VARYING) RETURNS CHAR AS ' DECLARE rut ALIAS FOR $1; rut_cero varchar(8); valor int; BEGIN valor := 0; rut_cero := lpad(rut,8,''0''); valor := valor + (substring(rut_cero,8,1)::int8)*2; valor := valor + (substring(rut_cero,7,1)::int8)*3; valor := valor + (substring(rut_cero,6,1)::int8)*4; valor := valor + (substring(rut_cero,5,1)::int8)*5; valor := valor + (substring(rut_cero,4,1)::int8)*6; valor := valor + (substring(rut_cero,3,1)::int8)*7; valor := valor + (substring(rut_cero,2,1)::int8)*2; valor := valor + (substring(rut_cero,1,1)::int8)*3; valor := valor % 11; IF valor =1 THEN RETURN ''K''; END IF; IF valor =0 THEN RETURN ''0''; END IF; IF valor>1 AND valor<11 THEN RETURN (11-valor)::char; END IF; END ' LANGUAGE plpgsql;
ahi dejo un codigo pa ver si alguien me ayuda a modificarlo :D