Eu não acho que você possa atualizar ou inserir em um BLOB/CLOB com JDBC em uma única etapa (para dados> 4k). De este exemplo da Oracle , parece que você precisa:
- Insira um LOB vazio com a função SQL
empty_clob()
- Selecione para atualizar o LOB que você inseriu
- obtenha o LOB em java com
ResultSet.getBlob()
em seguida, obtenha o fluxo de saída comblob.setBinaryStream
(desdeoracle.sql.BLOB.getBinaryOutputStream()
está obsoleto) - gravar neste fluxo de saída
- feche o fluxo de saída quando terminar
Você faria algo semelhante em Pl/SQL (SELECT FOR UPDATE um LOB, então escreveria nele).