Thủ tục được lưu trữ sẽ không chỉ trả về kết quả của lần CHỌN cuối cùng. Bạn cần thực sự trả về giá trị:
CREATE OR REPLACE FUNCTION fun() RETURNS text AS $$
BEGIN
--- ....
RETURN(SELECT dblink_disconnect());
END
$$ LANGUAGE plpgsql;
Bạn gặp lỗi vì Postgres mong đợi hàm trả về một thứ gì đó thuộc loại văn bản, nhưng hàm của bạn không trả về bất kỳ thứ gì.