Có EXECUTE tuyên bố của plpgsql , sẽ thực hiện những gì bạn đang cố gắng làm - thực thi một chuỗi truy vấn SQL. Bạn đã gắn thẻ động, vì vậy đây có thể là thứ bạn đang tìm kiếm.
Chỉ hoạt động bên trong các hàm plpgsql hoặc DO câu lệnh (khối mã ẩn danh). Sự khác biệt giữa EXECUTE và SQL-EXECUTE được nêu rõ trong sổ tay hướng dẫn tốt:
Lưu ý: PL / pgSQL
EXECUTEcâu lệnh không liên quan đếnEXECUTECâu lệnh SQL được hỗ trợ bởi máy chủ PostgreSQL.EXECUTEcủa máy chủ không thể sử dụng câu lệnh trực tiếp trong các hàm PL / pgSQL (và không cần thiết).
Nếu bạn muốn trả về các giá trị từ một SELECT động như ví dụ của bạn chỉ ra, bạn cần tạo một hàm. DO câu lệnh luôn trả về void . Tìm hiểu thêm về cách trả về giá trị từ một hàm trong hướng dẫn rất hữu ích.