我有一个分配给某个变量的查询,我想通过设置一些值来执行它。
示例:
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 */