Oracle
 sql >> Database >  >> RDS >> Oracle

Come posso inserire BLOB di grandi dimensioni (o almeno non banali) in Oracle con JDBC?

Non penso che tu possa aggiornare o inserire in un BLOB/CLOB con JDBC in un solo passaggio (per dati> 4k). Da questo esempio da Oracle , sembra che tu debba:

  1. Inserisci una LOB vuota con la funzione SQL empty_clob()
  2. Seleziona per aggiornare la LOB che hai inserito
  3. ottieni la LOB in java con ResultSet.getBlob() quindi ottieni il flusso di output con blob.setBinaryStream (dal momento che oracle.sql.BLOB.getBinaryOutputStream() è deprecato)
  4. scrivi in ​​questo flusso di output
  5. chiudi il flusso di output quando hai finito

Faresti qualcosa di simile in Pl/SQL (SELECT FOR UPDATE a LOB, quindi scrivici).