PostgreSQL通过DBLINK执行存储过程创建表-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

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

简介: 在A服务器创建存储存储过程CREATE OR REPLACE FUNCTION "public"."crt_tab"() RETURNS "pg_catalog"."int4" AS $BODY$declare str_sql varchar(100);ret int;begincreate ta...
  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');

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: