Postgresql Postgres数据库链接查询在哪里运行?

Postgresql Postgres数据库链接查询在哪里运行?,postgresql,function,dblink,Postgresql,Function,Dblink,全部, 我正在目标服务器上运行一个查询,从源服务器检索数据。我的查询正在使用摘要函数。摘要位于两台服务器上。它嵌入在两台服务器上都存在的UDF中。顺便说一句,查询的“选择”部分在源服务器上运行良好 我认为,当您提交远程查询时,它将在远程框上执行。我收到“1函数摘要(文本,未知)不存在…”错误。另外,由于两台服务器上的所有函数都在公共模式中,我不认为Postgres在查找函数时会失败 谢谢你的帮助 蒂亚 Mike查询在连接字符串中指定的服务器上执行。如果未提供主机,则在本地主机上。它们是使用连接字

全部,

我正在目标服务器上运行一个查询,从源服务器检索数据。我的查询正在使用摘要函数。摘要位于两台服务器上。它嵌入在两台服务器上都存在的UDF中。顺便说一句,查询的“选择”部分在源服务器上运行良好

我认为,当您提交远程查询时,它将在远程框上执行。我收到“1函数摘要(文本,未知)不存在…”错误。另外,由于两台服务器上的所有函数都在公共模式中,我不认为Postgres在查找函数时会失败

谢谢你的帮助

蒂亚


Mike

查询在连接字符串中指定的服务器上执行。如果未提供主机,则在本地主机上。它们是使用连接字符串中的角色执行的。这还包括该角色的
搜索路径

与您的问题无关,但在调试您描述的问题时,我会尝试两种方法:

  • 使用与dblink连接字符串相同的角色连接到远程服务器并执行查询
  • 模式限定dblink中的函数:
    public.digest(..)

  • 谢谢你,卢卡斯!我在远程服务器上开发了这个查询,它在这个平台上运行得非常好。摘要函数嵌入在函数的层次结构中,这些函数创建一个“哈希”来加密某些列。我没有这些函数的编辑权限,因此无法按照您的建议修改它们。Postgres中的“公共”模式不是大致类似于SQL Server中的“dbo”吗?我的连接是到数据所在的模式。当我在此架构中运行查询时,它能够找到函数,但无法通过dblink找到它们。我找到了具有必要权限的人来更改函数以完全限定函数调用。这似乎只是dblink的问题。@MikeA是的,它类似于SQL Server中的dbo,默认情况下它位于角色
    搜索路径中,但这是可以更改的。我假设您在dblink连接字符串中使用的角色就是这种情况。