我想将(SELECT)从本地 postgresql 过程连接到远程服务器,以便将此表存储在 localhost 中。我尝试使用这个:
CREATE SERVER foreign_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host ip_server, port '15432', dbname 'omstar_analysis_' || project_id);
但得到这个错误:
ERROR: syntax error at or near "||"
LINE 11: OPTIONS (host ''||ip_server, port '15432', dbname 'o...
很明显,该参数只接受一个字符串'127.0.0.1',例如,建立连接,但我希望这个程序连接到多个服务器。所以这就是我将参数编码为变量的原因ip_server
。
声明变量如下:
CREATE OR REPLACE FUNCTION get_cell_aggregation_cell_hour(ip_server VARCHAR, pass_server VARCHAR, project_id VARCHAR, cellkeys_list VARCHAR, itemid_list VARCHAR, busyhour_init INT, busyhour_finish INT, date_init VARCHAR, date_finish VARCHAR, aggre_obj VARCHAR, aggre_time VARCHAR)
RETURNS TABLE (DateLoaded varchar) AS $$
有没有其他方法可以实现多个连接?
我这样做是因为需要在每个服务器中执行程序,因为此程序不是在任何服务器中创建的……也许有一种方法可以在每个服务器中发送和创建程序。密码参数的相同问题。
注意:所有服务器具有相同的数据库结构,它只更改 id、密码和 IP。
谢谢