Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como coloco BLOBs grandes (ou pelo menos não triviais) no Oracle com JDBC?


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:
  1. Insira um LOB vazio com a função SQL empty_clob()
  2. Selecione para atualizar o LOB que você inseriu
  3. obtenha o LOB em java com ResultSet.getBlob() em seguida, obtenha o fluxo de saída com blob.setBinaryStream (desde oracle.sql.BLOB.getBinaryOutputStream() está obsoleto)
  4. gravar neste fluxo de saída
  5. feche o fluxo de saída quando terminar

Você faria algo semelhante em Pl/SQL (SELECT FOR UPDATE um LOB, então escreveria nele).