Bạn đang làm cho nó trở nên phức tạp.
Sử dụng PreparedStatement và addBatch () cho mỗi clob trong danh sách của bạn:
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();
Không gây rối với các chuỗi thoát, không có vấn đề với độ dài của các ký tự, không cần tạo các dấu tắc tạm thời. Và hầu hết có thể nhanh như sử dụng một câu lệnh INSERT ALL.
Nếu bạn đang sử dụng trình điều khiển hiện tại (> 10.2) thì tôi nghĩ rằng lệnh gọi setCharacterStream () và việc tạo Trình đọc cũng không cần thiết. Một setString(1, query)
hầu hết có lẽ cũng sẽ hoạt động.