首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何记录dblink_exec结果?

如何记录dblink_exec结果?
EN

Stack Overflow用户
提问于 2011-10-19 16:31:28
回答 1查看 760关注 0票数 0

在PostgreSQL中,我使用dblink_exec。有没有办法让我在每次执行dblink的时候都记录下来?

EN

回答 1

Stack Overflow用户

发布于 2011-10-20 04:19:13

我不知道像配置设置这样的简单方法来记录PostgreSQL中的一些功能。(如果有人这样做,我很感兴趣!)

您可以修改函数的源代码,以便在每次调用和重新编译时发出通知。

或者,如果您的C语言知识像我一样生疏,您可以以很小的性能成本,将函数包装在一个plpgsql函数中,该函数在调用dblink_exec之前或之后引发通知/警告。如下所示:

代码语言:javascript
复制
CREATE OR REPLACE FUNCTION mydblink_exec(text)
  RETURNS text AS
$$
RAISE NOTICE 'My text. Called with: "%"', $1;

RETURN dblink_exec($1);
$$
  LANGUAGE plpgsql VOLATILE STRICT;

您可以将原始的dblink_exec()函数移动到另一个名称或模式,以使其成为临时替代。只有在必要的情况下才这样做。见下文。

要小心涵盖所需的所有形式的dblink_exec()。I quote the manual

代码语言:javascript
复制
dblink_exec(text connname, text sql [, bool fail_on_error]) returns text
dblink_exec(text connstr, text sql [, bool fail_on_error]) returns text
dblink_exec(text sql [, bool fail_on_error]) returns text

为此,您将使用function overloading

在升级到新版本的PostgreSQL或重新安装dblink contrib模块时要小心,如果您实际上将原始函数移动到自定义名称/模式的话。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7818528

复制
相关文章

相似问题

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