Aca te dejo un ejemplo sencillo .
CREATE OR REPLACE FUNCTION ginscripcion(xcontrol character, xnombre character, xdocumento character, xf_nacimiento date, xiglesia integer)
RETURNS character varying AS
$BODY$
declare
BEGIN
IF xcontrol = 'I' THEN
INSERT INTO inscritos(nombre,documento,f_nacimiento,iglesia)
VALUES (xnombre,xdocumento,xf_nacimiento,xiglesia);
ELSE
--UPDATE extminist set cargo = xcargo,ministerio =xministerio where extminist.idextr = xidextr;
END IF;
RETURN xcontrol;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION ginscripcion(character, character, character, date, integer)
OWNER TO postgres;