2013-03-10 27 views
0

例子:的PostgreSQL不能在同一個模式發現功能問題的

  • 架構名稱 - schema123
  • 功能名稱= function123

找不到 - >variable:=function123(); 燦find - >variable:=schema123.function123()

使用PostgreSQL 8.4

+0

真的很難分辨你在做什麼和嘗試。我懷疑克里斯特拉弗斯是正確的這是一個'search_path'問題,但你提供的信息很少,很難說。 「相同模式」是什麼意思?相同...什麼? – 2013-03-10 14:23:10

回答

1

嘗試:

SET search_path='public, schema123'; 

然後運行你的函數。

更好的方法是使用完全用模式名作爲你的第二個例子將函數名限定。這遠不像容易出錯。

作爲一個註釋,除非你在搜索路徑中有架構,函數將不會找到它。在Pg 8.4中,你必須在存儲過程中有複雜的邏輯來設置和恢復搜索。在9.2中,你可以設置這個功能,這可能是考慮升級的一個很好的理由。