Prosedur tersimpan tidak hanya mengembalikan hasil SELECT terakhir. Anda harus benar-benar mengembalikan nilainya:
CREATE OR REPLACE FUNCTION fun() RETURNS text AS $$
BEGIN
--- ....
RETURN(SELECT dblink_disconnect());
END
$$ LANGUAGE plpgsql;
Anda mendapatkan kesalahan karena Postgres mengharapkan fungsi mengembalikan sesuatu yang bertipe teks, tetapi fungsi Anda tidak mengembalikan apa pun.