1

我正在使用 SQL 查询,它使用与此类似的自定义编写函数

CREATE OR REPLACE FUNCTION per_cont(myarray integer[], percentile real)

这在 pgAdmin 工具中工作得很好,但是当我在我的 java 应用程序中使用这个查询时,它给了我一个错误:

function per_cont(integer[], real) does not exist

我正在使用 JDBI 库与数据库进行交互。为什么从 java 应用程序运行时找不到函数?我该如何解决?

4

1 回答 1

3

该错误消息对于您显示的命令根本没有意义。CREATE OR REPLACE FUNCTION假设您实际上是在 DML 语句中调用该函数,例如

SELECT per_cont('{1,2,3}', 1);

显然你必须使用相同的数据库,但你说已经建立了。

你的search_path也必须匹配。由于您没有明确提供模式,因此该函数在创建时在“当前”模式中创建。相同的模式必须出现在search_path另一个会话中,否则该功能不可见。

链接答案中的详细说明:

于 2014-12-16T13:24:54.897 回答