表名作为变量参数

时间:2016-11-29 09:40:24

标签: postgresql plpgsql pgadmin

我在pgadmin中创建了一个函数

create or replace function get_source2(a text)
returns integer as
$$
declare
    a text;
    geom geometry;
begin
    select get_source(geom) 
    from a;
end;
$$
language plpgsql;

我想按表名输入a我该怎么办?我试着喜欢这个

select get_source2('postgis.center')

但我明白了:

  

错误:关系“a”不存在第2行:来自帮助我

1 个答案:

答案 0 :(得分:1)

试试这个:

create or replace function get_source2(a text)
returns integer as
$$
declare
    geom geometry;
begin
  execute 'select get_source(geom) from '||quote_ident(a) into geom;
  return geom;
end;
$$
language plpgsql;