sql >> Database >  >> RDS >> Oracle

Waar is mijn ongeldige teken (ORA-00911)

Als je de letterlijke tekenreeks precies gebruikt zoals je ons hebt laten zien, is het probleem de ; karakter op het einde. U mag dat niet opnemen in de queryreeks in de JDBC-aanroepen.

Aangezien u slechts één rij invoegt, wordt een gewone INSERT zou prima moeten zijn, zelfs bij het invoegen van meerdere rijen. Het gebruik van een batchstatement is sowieso efficiënter. Geen behoefte aan INSERT ALL . Bovendien heb je de tijdelijke clob en zo niet meer nodig. Je kunt je methode vereenvoudigen tot iets als dit (ervan uitgaande dat ik de parameters goed heb):

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. De laatste dag van de maand vinden in SQL Server

  2. Twee tabellen samenvoegen met een door komma's gescheiden lijst in het samenvoegveld

  3. Waarom hebben gehele getallen in databaserij-tuple een 'L'-achtervoegsel?

  4. MariaDB POWER() uitgelegd