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

Indsæt CLOB i Oracle-databasen

Du gør det alt for kompliceret.

Brug en PreparedStatement og addBatch() for hver klods på din liste:

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();

Ingen roder rundt med undslippende strenge, intet problem med længden af ​​bogstaverne, ingen grund til at skabe midlertidige klumper. Og sandsynligvis lige så hurtigt som at bruge en enkelt INSERT ALL-sætning.

Hvis du bruger en aktuel driver (> 10.2), så tror jeg, at setCharacterStream()-kaldet og oprettelsen af ​​Reader heller ikke er nødvendig. En simpel setString(1, query) vil højst sandsynligt også fungere.



  1. Heroku Postgres:For mange forbindelser. Hvordan dræber jeg disse forbindelser?

  2. Er der en bedre Oracle-operatør til at udføre nul-sikker ligestillingskontrol?

  3. Oracle til Excel - PL/SQL eksportprocedure

  4. Konverter VARCHAR2 til tal