Вернуть строки из функции PL / pgSQL

У меня есть процедура в PostgreSQL:

CREATE OR REPLACE FUNCTION get_geom_difference()
RETURNS void AS
$
BEGIN
SELECT filedata.num,st_area(ST_Difference(ST_TRANSFORM(filedata.the_geom,70066),filedata_temp.the_geom))
FROM filedata, filedata_temp
Where filedata.num=filedata_temp.num

end;
$
LANGUAGE 'plpgsql'

Я называю это на Java и хочу получить результат этой процедуры. Как изменить эту процедуру, чтобы сделать возможным получение результата? И как с этим работать в JDBC?

Теперь я использую это:

Integer fileId;
Class.forName("org.postgresql.Driver");
Connection connect= null;
connect = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgis","postgres","123456");
java.sql.CallableStatement proc =  connect.prepareCall("{?=call get_geom_difference()}");
proc.registerOutParameter(1, java.sql.Types.Integer);
proc.execute();
ResultSet results = (ResultSet) proc.getObject(1);
while (results.next()) {
fileId=r.getInt("num");
}
proc.close();
connect.close();
out.println(fileId);

Но когда я пытаюсь вызвать процедуру в JDBC, я получаю

error org.apache.jasper.JasperException: An exception occurred processing JSP page /commit_changes.jsp at line 25

Строка 25:proc.execute();

Ответы на вопрос(3)

Ваш ответ на вопрос