Tôi cần tạo một hàm sẽ chạy truy vấn và trả về kết quả với tên bảng và tên cột là các hàm được gán cho hàm. Tôi hiện có:Chức năng truy vấn động Postgres
CREATE OR REPLACE FUNCTION qa_scf(tname character varying, cname character varying)
RETURNS SETOF INT AS
$BODY$
BEGIN
RETURN QUERY SELECT * FROM tname WHERE cname !='AK' AND cname!='CK';
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
Điều này cho tôi lỗi "Relation 'tname' không tồn tại" khi chạy. Tôi mới tạo chức năng cho Postgres, vì vậy mọi trợ giúp đều được đánh giá cao. Tôi cảm thấy như int trở lại là sai, nhưng tôi không biết những gì khác để đặt để làm cho nó trả về tất cả các cột cho các hàng trả về. Cảm ơn!
Tôi nên khai báo kết quả là gì? –
Không bao giờ nội suy các giá trị vào các câu lệnh sql động mà không sử dụng hàm quote_FOO() thích hợp hoặc bạn mở cửa cho các cuộc tấn công tiêm. – dbenhur
Đây là cơ sở dữ liệu nội bộ. –