A Q*_*ker 1 postgresql plpgsql
基本上,至少为了概念验证,我想要一个我可以运行的函数:SELECT res('table_name'); 这将给我SELECT*FROM table_name;的结果.我遇到的问题是架构......在我所拥有的函数的声明中:
创建或替换功能res(table_name TEXT)返回设置此THEPISEPEPROBLEM AS
问题是我不知道如何声明我的返回,因为它要我指定一个表或一个模式,在实际运行该函数之前我不会这样做.
有任何想法吗?
您可以这样做,但如前所述,您必须在SELECT查询中添加列定义列表.
CREATE OR REPLACE FUNCTION res(table_name TEXT) RETURNS SETOF record AS $$
BEGIN
RETURN QUERY EXECUTE 'SELECT * FROM ' || table_name;
END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)
SELECT * FROM res('sometable') sometable (col1 INTEGER, col2 INTEGER, col3 SMALLINT, col4 TEXT);
Run Code Online (Sandbox Code Playgroud)