Witam wszystkich!
Mam problem z pobraniem zwracanej przez funkcję wartości z bazy danych. Zacznę od początku. Mam bazę danych w której mam przykładową funkcję:
CREATE OR REPLACE FUNCTION test()
RETURNS integer AS
$BODY$
DECLARE
uid integer;
BEGIN
return -3;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
Wykonując zapytanie w bazie:
SELECT test()
Otrzymuję wynikową tabelę z wartością -3, takiej też wartości oczekiwałem.
Mam program którym chciałbym pobrać tę wartość. Fragment metody która to robi wygląda tak:
try {
final PreparedStatement p = JDBCDAOFactory.getConnection().prepareStatement("SELECT test()");
final ResultSet r = p.executeQuery();
if (r.next()) {
int test = r.getInt(1);
System.out.println(test);
} else {
System.out.println("Example");
}
} catch (SQLException e) {
throw new DAOException(e);
} catch (IOException e) {
throw new DAOException(e);
}
Niestety w tym przypadku otrzymuję zawsze 0.
Czy ktoś potrafi mi powiedzieć dlaczego tak się dzieje? Byłbym ogromnie wdzięczny za pomoc