sql >> Databasteknik >  >> RDS >> Oracle

Infoga CLOB i Oracle-databasen

Du gör det för komplicerat.

Använd en PreparedStatement och addBatch() för varje klump i din lista:

String sql = "insert  into " + tempTableName + " values (?)";
PreparedStatement stmt = connection.prepareStatement(sql);
for (String query : readQueries) {
  stmt.setCharacterStream(1, new StringReader(query), query.lenght());
  stmt.addBatch();
}
stmt.exececuteBatch();

Inget krångel med flyende strängar, inga problem med längden på bokstaverna, inget behov av att skapa tillfälliga klumpar. Och förmodligen lika snabbt som att använda en enda INSERT ALL-sats.

Om du använder en aktuell drivrutin (> 10.2) så tror jag att anropet setCharacterStream() och skapandet av Reader inte heller är nödvändigt. En enkel setString(1, query) kommer antagligen att fungera också.



  1. Lagra filer i databas kontra filsystem

  2. Hur hanterar jag att öppna/stänga Db-anslutning i en Go-app?

  3. Hur skriver man med BCP till en fjärransluten SQL-server?

  4. [Video] Power of Indexing i PostgreSQL