1
が、それは単に呼び出し元の関数の結果として、dblink()
アップによって生成されたレコードを渡すことができ、何かのように:押したレコード
create function execute_generic_sql_on_remote_databases(_sql text)
return set of record
language plpgsql
as $$
declare
r record; -- this is already not a real record
begin
-- get connections to several DBs
...
-- send _sql queries to the DBs
...
-- get results of query execution
loop through connections
for r in select MAGIC from dblink_get_results(conn, _sql) loop
return next r;
end loop;
end loop;
-- close connections
...
end;
$$;
一つは、これを呼び出すことができます
select * from execute_generic_sql_on_remote_databases('SELECT 1') as r(i int);
しかし、それはいくつかのMAGIC
を必要とします:実際にdblink
のような機能。 :(
簡単にplProxy
を使用していることを行うことは可能ですが、問題は、それがすべてでplpgsql
で可能であるならば、dblink
でそれを行う方法である。それは可能ある
答えをいただきありがとうございます。そのようなソリューションの構文は実際には厄介です...残念です。 これで、追加のplProxy接続設定を行って、plProxyでラップされたストアドプロシージャを実行するとします。 – valgog