- 在A服务器创建存储存储过程
CREATE OR REPLACE FUNCTION "public"."crt_tab"()
RETURNS "pg_catalog"."int4" AS $BODY$
declare
str_sql varchar(100);
ret int;
begin
create table tab_test(id int);
--execute immediate "create table tab_test(int id);";
--execute immediate str_sql;
return 1;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
- 在B服务器创建扩展db_link
create extension dblink; - 在B服务器创建连接,其中host地址为A服务器地址
- dblink_connect('test_dblink','host=10.110.38.201 dbname=admin user=postgres password=postgres');
- 执行A服务器存储过程,创建表(as t(ret int)为函数返回值类型,此处为int)
- from dblink('test_dblink','select crt_tab()') as t(ret int);
- 关闭连接
select dblink_disconnect('test_dblink');