Ich versuche, eine Postgres-Funktion in Java mit einer Callable-Anweisung aufzurufen. Einer der Eingabeparameter für die Funktion ist vom Typ Timestamp. Wenn ich versuche, die Funktion von Java aufzurufen, erhalte ich den folgenden Fehler."Unbekannter Datentyp" Fehler in JDBC Anruf
ERROR: function insrt_data(character varying, integer, bigint, unknown, character varying) does not exist
Meine Funktion Signatur ist:
insrt_data(
i_cd character varying,
i_prog_id smallint,
i_stat_id bigint,
i_dt date,
i_stat_cd character varying) RETURNS character varying
Mein jdbc Anruf als unten. StrtDt ist ein java.util.Date-Feld.
String sql = "{call mySchema.insrt_data(?, ?, ?, ?, ?)}";
java.sql.Date StartDt = new java.sql.Date(record.getStrtDt().getTime());
Map<String, Object> map = jdbcTemplate.call(connection -> {
CallableStatement statement = connection.prepareCall(sql);
statement.setString(1, record.getCd());
statement.setInt(2, record.getProgId());
statement.setLong(3, record.getId());
statement.setDate(4, StartDt);
statement.setString(5, record.getStatCd());
statement.registerOutParameter(1, Types.VARCHAR);
return statement;
}, paramList);