The database function does not use out parameters or a ref cursor, which was why I was confused. The Java sample I provided is a simplification of the built-in default logic of the Spring Batch ItemWriter - I put it into my own implementation class to help with debugging. The root cause seems to be the JDBC driver thinking that there should not be results because it is an update and the 'select' influencing that decision. I tried switching this ItemWriter implementation to use a CallableStatement, and that did work, but I wanted to understand why the approach I listed in the original post didn't work.
Thanks
On Mon, May 4, 2015 at 6:05 AM, Thomas Kellerer <spam_eater@gmx.net> wrote:
Hannes Erven schrieb am 04.05.2015 um 12:31: > Hi, > > >> String sql = "select test_user_result_insert_func(?, ?, ?);"; > > You can't call functions via JDBC like that.
That's perfectly valid - unless the function uses out parameters or ref cursors.
I am however unsure about batched statements here. So trying CallableStatement is definitely worth a shot.