在PostgreSQL中使用函数参数代替字符串常量

时间:2016-04-09 12:46:46

标签: postgresql

我正在尝试使用以下函数通过函数使用FDW创建外部服务器。但是,当我使用函数参数 $ 1 替换主机的字符串常量时,出现语法错误。我在这里错过了什么吗?

 CREATE OR REPLACE FUNCTION foreign_server_create(host_name text) RETURNS VOID
AS $$
    CREATE SERVER postgres_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host $1, dbname 'xx', port 'xxxx');
$$ LANGUAGE sql;

1 个答案:

答案 0 :(得分:0)

 CREATE OR REPLACE FUNCTION foreign_server_create(host_name text) RETURNS VOID
AS $$
 EXECUTE format ('CREATE SERVER postgres_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host %L, dbname 'xx', port 'xxxx')', $1);
$$ LANGUAGE plpgsql;