PostgreSQL:如何使用'执行'?将值设置为变量

时间:2014-07-11 09:38:35

标签: postgresql

我有一个分配给某个变量的查询,我想通过设置一些值来执行它。

示例

create or replace function funct1(a int)
returns void as
$$
declare
       wrclause varchar := '';
       sqlq varchar ;
       t varchar;
begin
     IF (a IS NOT NULL ) THEN 
        wrclause := 'where C = '|| a ||' AND C IN ('|| a || ')';
     END IF;


     sqlq := ' t :=select string_agg(''select *, abcd as "D" from '' || table_namess  ||, '' Union all '') as namess
     from tablescollection2 ud
     inner join INFORMATION_SCHEMA.Tables so on ud.table_namess = so.Table_name ' || wrclause;

      raise info '%',sqlq;

      execute sqlq; /* How to set value to variable f.ex (t varchar output,t output)*/

      raise info '%',t;
end;
$$
language plpgsql;

在SQL Server中:我们可以使用

exec sp_executesql @sqlq, N'@t nvarchar(max) output', @t OUTPUT;

注意:我如何在PostgreSQL中做?

MyTry

execute sqlq(t varchar output,t output); /* getting error near varchar */

1 个答案:

答案 0 :(得分:1)

您可以执行类似

的操作
EXECUTE sqlq INTO target_variable;

获取更多帮助plpgsql-statements