PostgreSQL通过DBLINK执行存储过程创建表

  1. 云栖社区>
  2. 博客>
  3. 正文

PostgreSQL通过DBLINK执行存储过程创建表

libydwei2019 2019-05-17 11:04:58 浏览223
展开阅读全文
  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

  1. 在B服务器创建扩展db_link
    create extension dblink;
  2. 在B服务器创建连接,其中host地址为A服务器地址
  3. dblink_connect('test_dblink','host=10.110.38.201 dbname=admin user=postgres password=postgres');
  4. 执行A服务器存储过程,创建表(as t(ret int)为函数返回值类型,此处为int)
    • from dblink('test_dblink','select crt_tab()') as t(ret int);
  5. 关闭连接
    select dblink_disconnect('test_dblink');

网友评论

登录后评论
0/500
评论