pruebalo así
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION valida_rut(VARCHAR(9))
RETURNS bool AS
$BODY$
DECLARE
rutfull ALIAS FOR $1;
rutfull_cero VARCHAR(9);
rut VARCHAR(8);
dv CHAR;
respuesta bool;
BEGIN
IF rutfull IS NULL THEN
respuesta = TRUE;
END IF;
rutfull_cero := lpad(rutfull,9,''0'');
rut:= substr(rutfull_cero,0,9);
dv := substr(rutfull_cero,9,1);
IF digito_verificador(rut)=UPPER(dv) THEN
respuesta = TRUE;
ELSE
respuesta = FALSE;
END IF;
RETURN respuesta;
END;
$BODY$
LANGUAGE 'plpgsql';
Las etiquetas $body$ son para establecer el bloque central del procedimiento.
saludos