Tôi đang cố tạo hàm trả về kết quả được chọn. Khi tôi gọi postgres tôi chức năng như select * from tst_dates_func()
này, tôi nhận được một lỗi như hình dưới đây:Chức năng với truy vấn SQL không có đích cho dữ liệu kết quả
ERROR: query has no destination for result data
HINT: If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT: PL/pgSQL function "tst_dates_func" line 3 at SQL statement
********** Error **********
ERROR: query has no destination for result data
SQL state: 42601
Hint: If you want to discard the results of a SELECT, use PERFORM instead.
Context: PL/pgSQL function "tst_dates_func" line 3 at SQL statement
Dưới đây là chức năng tôi đã tạo:
CREATE OR REPLACE FUNCTION tst_dates_func()
RETURNS TABLE(date_value date, date_id int, date_desc varchar) as
$BODY$
BEGIN
select a.date_value, a.date_id, a.date_desc from dates_tbl a;
END;
$BODY$
LANGUAGE plpgsql;
Tôi không chắc chắn lý do tại sao tôi nhận được lỗi trên . Tôi muốn chạy select * from tst_dates_func();
và nhận lại dữ liệu. Hoặc tiếp tục tham gia tập kết quả nếu cần. vấn đề ở đây là gì?
Hãy xem các ví dụ trong cuốn hướng dẫn: http://www.postgresql.org/docs/current /static/plpgsql-control-structures.html#PLPGSQL-STATEMENTS-RETURNING và http://www.postgresql.org/docs/current/static/sql-createfunction.html#SQL-CREATEFUNCTION-EXAMPLES –
LANGUAGE phải là SQL, phải không? –
Tôi cần nó là hàm plpgsql. Cộng với ngôn ngữ là SQL, tôi sẽ cần phải đặt câu lệnh truy vấn vào chuỗi với các trích dẫn và tôi không muốn làm điều đó. –