Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Di mana karakter saya yang tidak valid (ORA-00911)

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara bekerja dengan Fungsi tanggal di Oracle sql

  2. RPAD() Fungsi di Oracle

  3. Contoh kueri MySQL dengan jawaban

  4. Cloud Native dan DevSecOps dalam Skala Besar dengan Capgemini Agile Innovation Platform dan Oracle Cloud

  5. masalah dengan fungsi to_date dengan sysdate