如何使用名称创建视图,该视图可以作为postgresql中的参数传递函数?

时间:2014-02-13 07:46:58

标签: sql postgresql

我正在尝试使用函数在postgreSQL中创建一个视图。我想要一个视图名称,它应该作为参数传递给函数。例如..

- 表

create table test
( rollno int,
  name text);

- 创建视图的功能

create or replace function fun_view(roll int)
returns void as
$Body$
declare
       rec record;
begin
       for rec in select * from test where rollno=roll loop
           create or replace view "---Name of view should be roll---" as 
           select rollno from test;
       end loop;
$Body$
language plpgsql;

1 个答案:

答案 0 :(得分:2)

您需要PL / PgSQL的动态SQL EXECUTE命令:

EXECUTE format('create or replace view %I as ...', roll::text);

请参阅文档中的dynamic SQL in PL/PgSQL