Bạn không cần các biến cục bộ đó cho lược đồ và bảng. Sử dụng tùy chọn định dạng để tạo các truy vấn và EXECUTE
để chạy nó động
CREATE OR REPLACE FUNCTION xx.fn_build_test_(
IN p_var_archive_schema character varying,
IN p_var_archive_table character varying )
RETURNS record AS
$BODY$
DECLARE
l_var_test VARCHAR[];
BEGIN
SELECT array
( SELECT TO_CHAR(column_name,'YYYYMMDD')
FROM "test_table"
WHERE col1 = 1
) INTO l_var_test;
EXECUTE format (
'select col_name FROM %I.%I',
p_var_archive_schema,p_var_archive_table)
--INTO rec_variable;
END;
$BODY$
LANGUAGE plpgsql
VOLATILE SECURITY INVOKER;
Nếu bạn muốn trả về kết quả của một truy vấn động, bạn có thể sử dụng
RETURNS TABLE
và sau đó thực hiện RETURN QUERY EXECUTE
để trả về kết quả từ truy vấn.