यदि आप स्ट्रिंग अक्षर का ठीक उसी तरह उपयोग करते हैं जैसा आपने हमें दिखाया है, तो समस्या ;
. है अंत में चरित्र। आप इसे JDBC कॉल में क्वेरी स्ट्रिंग में शामिल नहीं कर सकते।
चूंकि आप केवल एक पंक्ति, एक नियमित INSERT
. सम्मिलित कर रहे हैं एकाधिक पंक्तियों को सम्मिलित करते समय भी ठीक होना चाहिए। बैच किए गए कथन का उपयोग करना वैसे भी अधिक कुशल है। INSERT ALL
. की कोई आवश्यकता नहीं है . इसके अतिरिक्त आपको अस्थायी क्लॉब और वह सब कुछ नहीं चाहिए। आप अपनी पद्धति को कुछ इस तरह से सरल बना सकते हैं (यह मानते हुए कि मुझे पैरामीटर सही मिले हैं):
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();