PostgreSQL:如何使用dblink为变量分配“SELECT”查询?

时间:2014-05-29 04:51:33

标签: postgresql dblink

这里我试图为特定变量分配“SELECT”查询。 select查询使用dblink从其他数据库表中检索行。例如如下所示:

示例:我的尝试

create or replace function fun(names varchar(60), id bigint) returns void as
$$
Declare
        sql varchar;
Begin
        sql := 'Select * from dblink'('conn','select * from tablex') /* Error occurred here */  
               'where name = ''' || names ||'''';

        raise info '%',sql;

        execute sql,'names varchar(60)',names=names;
end;
$$
Language plpgsql;

错误:语法错误在“(”

处或附近

2 个答案:

答案 0 :(得分:1)

你搞砸了你的报道。

你也可以在fumction中使用美元报价。

sql := $SQL$...$SQL$

答案 1 :(得分:0)

解决方案:这是解决方案

create or replace function fun(names varchar(60), id bigint) returns void as
$$
Declare
        sql varchar;
Begin
        sql := 'Select * from dblink(''conn','select * from tablex'') 

           where name = ''' || names ||'''';

    raise info '%',sql;

    execute sql,'names varchar(60)',names=names;
end;
$$
Language plpgsql;