Oracle
 sql >> база данни >  >> RDS >> Oracle

Къде е моят невалиден знак (ORA-00911)

Ако използвате низовия литерал точно както ни показахте, проблемът е ; герой в края. Може да не го включвате в низа на заявката в 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();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ефективен начин за актуализиране на всички редове в таблица

  2. Начин да проверите завършения sql на Oracle

  3. Стъпка по стъпка R12.2.6 Инсталиране на EBS на Virtual Box Част -2

  4. Използване на FLASHBACK в Oracle

  5. Потърсете стойност в стойността на колоната, която съхранява стойности, разделени със запетая