create extension dblink
查看连接:
select dblink_get_connections()
断开所有连接:
select dblink_disconnect()
断开指定名称的连接:
select dblink_disconnect('test')
select dblink_connect('ics','host=172.16.0.199 dbname=ics user=ics password=ics');
1. 在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
2. 在B服务器创建扩展db_link
create extension dblink;
3. 在B服务器创建连接,其中host地址为A服务器地址
select dblink_connect('puc_dblink','host=D区数据库IP dbname=puc user=postgres password=123456');
4. 执行A服务器存储过程,创建表(as t(id int)为函数返回值类型,此处为int)
select * from dblink('puc_dblink','select crt_tab()') as t(ret int);
5. 关闭连接
select dblink_disconnect('puc_dblink');