Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wstaw CLOB do bazy danych Oracle

Sprawiasz, że jest to skomplikowane.

Użyj PreparedStatement i addBatch() dla każdego kloba na liście:

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

Bez grzebania w strunach uciekających, bez problemu z długością literałów, bez potrzeby tworzenia tymczasowych kłębów. I najprawdopodobniej tak szybko, jak przy użyciu pojedynczej instrukcji INSERT ALL.

Jeśli używasz aktualnego sterownika (> 10.2), to myślę, że wywołanie setCharacterStream() i utworzenie czytnika również nie są konieczne. Prosty setString(1, query) najprawdopodobniej również zadziała.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-01461:może powiązać wartość LONG tylko w celu wstawienia do kolumny LONG — występuje podczas wykonywania zapytania

  2. Co to jest Oracle SQL i PL/SQL? Wszystko, co powinien wiedzieć początkujący

  3. Dokumentacja MAA dla Oracle Cloud

  4. Jak obliczyć różnicę między dwoma znacznikami czasu w Oracle?

  5. Oracle - Dlaczego powinienem używać pakietów zamiast samodzielnych procedur lub funkcji?