У меня проблемы с вызовом функции PostgreSQL из JDBC с учетом следующих обстоятельств. Сохраненная функция endpoint_organizations
определяется следующим образом:Исключение «функция не существует» при выполнении хранимой функции PostgreSQL через JDBC
postgres=# \df public.endpoint_organizations
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+------------------------+------------------------------------------+---------------------+--------
public | endpoint_organizations | TABLE(organizationid integer, name text) | staffid1 integer | normal
(1 row)
Я зову его с Java, как это:
int staffId = 1
PreparedStatement endpointOrganizations = connection.prepareStatement("SELECT * FROM endpoint_organizations (?)");
endpointOrganizations.setInt(1, staffId);
ResultSet resultSet = endpointOrganizations.executeQuery();
И я получаю это исключение:
org.postgresql.util.PSQLException:
ERROR: function endpoint_organizations(integer) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Position: 15
Что может быть причиной ? Если я не ошибаюсь, это сработало раньше. Я проверял дважды и трижды проверял, но не вижу, что может вызвать проблему.
У вас есть разрешение на выполнение этой функции с пользователем jdbc? Если не предоставить выполнение функции endpoint_organizations; – d1ll1nger
@ d1ll1nger Да, у меня есть. Если я 'psql -U' в базу данных и 'select * from endpoint_organizations (1)' там, все работает нормально. –
Drux