首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >postgresql中的动态dblink

postgresql中的动态dblink
EN

Stack Overflow用户
提问于 2021-11-23 15:33:56
回答 1查看 31关注 0票数 0

我有一段代码:

代码语言:javascript
复制
do $$
declare 
port int;
dbname varchar;
begin
    select current_database() into dbname;

    select setting into port from pg_catalog.pg_settings where name = 'port';

    perform format ('select dblink_connect(''toto'', ''port=%s dbname=%s'')', port, dbname);

    perform dblink_disconnect('toto');
end $$;

但当我运行它时,当我试图断开它时,它会提示我的“toto”连接不存在。

我尝试了多种方法,但都不起作用。我想我的dblink_connect出了点问题,不知何故它不能建立连接。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-23 16:11:37

您执行格式化函数,获得一个看起来像SQL查询的文本结果,然后将其丢弃。因为这就是PERFORM所做的。

也许您打算执行该字符串,而不是将其丢弃。但在我看来,没有理由在这里使用动态查询。你也可以在静态查询中使用"format“。

代码语言:javascript
复制
do $$
declare 
port int;
dbname varchar;
begin
    select current_database() into dbname;
    select setting into port from pg_catalog.pg_settings where name = 'port';
    perform dblink_connect('toto', format('port=%s dbname=%s', port, dbname));
    perform dblink_disconnect('toto');
end $$;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70083613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档