Jika Anda menggunakan literal string persis seperti yang Anda tunjukkan kepada kami, masalahnya adalah ;
karakter di akhir. Anda tidak boleh menyertakannya dalam string kueri dalam panggilan JDBC.
Karena Anda hanya menyisipkan satu baris, INSERT
regular biasa seharusnya baik-baik saja bahkan ketika memasukkan beberapa baris. Menggunakan pernyataan batch kemungkinan lebih efisien. Tidak perlu INSERT ALL
. Selain itu Anda tidak memerlukan gumpalan sementara dan semua itu. Anda dapat menyederhanakan metode Anda menjadi sesuatu seperti ini (dengan asumsi saya mendapatkan parameter yang benar):
String query1 = "select substr(to_char(max_data),1,4) as year, " +
"substr(to_char(max_data),5,6) as month, max_data " +
"from dss_fin_user.acq_dashboard_src_load_success " +
"where source = 'CHQ PeopleSoft FS'";
String query2 = ".....";
String sql = "insert into domo_queries (clob_column) values (?)";
PreparedStatement pstmt = con.prepareStatement(sql);
StringReader reader = new StringReader(query1);
pstmt.setCharacterStream(1, reader, query1.length());
pstmt.addBatch();
reader = new StringReader(query2);
pstmt.setCharacterStream(1, reader, query2.length());
pstmt.addBatch();
pstmt.executeBatch();
con.commit();