说我有这个问题:
CREATE OR REPLACE FUNCTION select_from_table(table_name varchar(63))
RETURNS SETOF table_name AS
$$
DECLARE
query TEXT := 'SELECT * FROM ' || table_name;
BEGIN
RETURN QUERY EXECUTE query;
END;
$$ LANGUAGE plpgsql;
现在如果我尝试执行它,我得到error: type "table_name" does not exist
,这可能是因为我只能使用函数内的参数(在美元引号之间)而不是在返回类型定义中。
问题是:通过将其名称作为参数传递而不是将其硬编码到函数中,是否有任何方法可以从表中SELECT
?怎么样?