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

在PostgreSQL中使用函数参数代替字符串常量,postgresql,Postgresql,我尝试使用以下函数通过函数使用FDW创建外部服务器。但是,当我用函数参数$1替换host的字符串常量时,我得到了一个语法错误。我有什么遗漏吗 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 '

我尝试使用以下函数通过函数使用FDW创建外部服务器。但是,当我用函数参数$1替换host的字符串常量时,我得到了一个语法错误。我有什么遗漏吗

 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;

您需要构建一个动态语句并执行它。谢谢,我将提供解决方案。
 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;