De opgeslagen procedure retourneert niet alleen het resultaat van de laatste SELECT. U moet de waarde daadwerkelijk retourneren:
CREATE OR REPLACE FUNCTION fun() RETURNS text AS $$
BEGIN
--- ....
RETURN(SELECT dblink_disconnect());
END
$$ LANGUAGE plpgsql;
U krijgt de foutmelding omdat Postgres verwacht dat de functie iets van het type tekst retourneert, maar uw functie retourneert niets.