Функция PostgreSQL не существует

Я использую запрос SQL, который использует пользовательскую функцию, похожую на эту

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

Это прекрасно работает в инструменте pgAdmin, но когда я использую этот запрос в моем Java-приложении, он выдает мне ошибку:

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

Я использую библиотеку JDBI для взаимодействия с базой данных. Почему он не находит функцию при запуске из Java-приложения? Как я могу это исправить?

1 ответ

Сообщение об ошибке не имеет смысла для CREATE OR REPLACE FUNCTION Команда, которую вы показываете. Предполагая, что вы на самом деле вызываете функцию в выражении DML, как

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

Очевидно, вы должны использовать ту же базу данных, но вы говорите, что она была создана.

Ваш search_path также должен соответствовать. Поскольку вы не предоставляете схему явно, функция создается в "текущей" схеме при ее создании. Та же схема должна отображаться в search_path другого сеанса или функция не видна.

Подробные инструкции в связанном ответе:

Другие вопросы по тегам