PostgreSQL无法在同一模式中找到函数

时间:2013-03-10 13:51:03

标签: function postgresql

问题示例:

  • 架构名称 - schema123
  • 功能名称= function123

找不到 - > variable:=function123(); 可以找到 - > variable:=schema123.function123()

使用PostgreSQL 8.4

1 个答案:

答案 0 :(得分:1)

尝试:

SET search_path='public, schema123';

然后运行你的功能。

更好的方法是使用完全限定函数名称和模式名称,如第二个示例所示。这远不那么容易出错。

作为注释,除非您在搜索路径中具有架构,否则函数将无法找到它。在Pg 8.4中,您必须在存储过程中使用复杂的逻辑来设置和恢复搜索。在9.2中,你可以为函数设置这个,这可能是考虑升级的一个很好的理由。