PostgreSQL:如何将表/视图名称作为参数传递给PostgreSQL中的函数?

时间:2014-03-31 04:53:32

标签: postgresql plpgsql dynamic-sql

例如:我有一个名为" view1"其中包含' name'和' slno'列,现在我希望它使用名为" f1"的FUNCTION显示如下图所示:

- 功能

create or replace function f1(viewname varchar) 
returns table (name varchar,slno integer) as
$body$
begin
     return query
     select * from viewname;
end;
$body$
language plpgsql;

1 个答案:

答案 0 :(得分:4)

这是动态SQL,因此您需要EXECUTE

RETURN QUERY EXECUTE format('SELECT * FROM %I', "name");

另外,这是一个奇怪的事情。