如何使用postgres函数传递动态表名并获取查询返回结果数据?

时间:2019-11-28 09:03:40

标签: postgresql

我创建了一个函数来从动态传递的表中获取记录。

如下:

CREATE OR REPLACE FUNCTION public.get_rec(tbl_name text)
  RETURNS SETOF text AS   -- text!!
$func$
BEGIN 
      RETURN QUERY EXECUTE format(
        'SELECT * FROM %I'
       , tbl_name);
   RETURN;
END 
$func$ LANGUAGE plpgsql;

并选择如下:

SELECT public.get_rec((mytablename)); -- passed my table name 

但是它给出了这样的错误:

   the column "my table name" does not exist

有人知道怎么做吗?

提前谢谢!

0 个答案:

没有答案