import java.sql.*; public class FuncNPE { public static void main(String args[]) throws Exception { Class.forName("org.postgresql.Driver"); Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5820/jurka?loglevel=2&prepareThreshold=1","jurka",""); Statement stmt = conn.createStatement(); stmt.execute("CREATE OR REPLACE FUNCTION myfunc(in a float8, out b float8) AS 'BEGIN b := a; END;' LANGUAGE plpgsql"); stmt.close(); CallableStatement cs = conn.prepareCall("{call myfunc(?,?)}"); for (int i=0; i<10; i++) { cs.registerOutParameter(2, Types.DOUBLE); cs.setObject(1, new Double(i)); cs.execute(); cs.clearParameters(); } cs.close(); conn.close(); } }