2015-04-14 3 views
0

У меня есть база данных оракула с следующей схемой:вставки бросков недействителен индекс столбца

  • DM_ID, автонумерации PK
  • t_ID, VARCHAR
  • Workflow, VARCHAR
  • Technology, VARCHAR
  • Name_event , varchar
  • Time_event, date

Я использую следующий метод, чтобы сделать некоторые вставки в базе данных.

private void insert(String folder, int seconds) throws SQLException { 
      stm = connection.prepareStatement("INSERT INTO DM_PROCMON (DM_ID,t_ID, WORKFLOW, TECHNOLOGY, NAME_EVENT, TIME_EVENT) VALUES(DM_ID.nextval,'?', 'up', 'Folder','?', ?)"); 
      stm.setString(1, String.format("%d%d%d.txt",random.nextInt(999),random.nextInt(999),random.nextInt(999))); 
      stm.setString(2, folder); 
      stm.setTime(3, new Time(seconds * 1000)); 
      stm.execute(); 
     } 

Что я получаю исключение SQL, который говорит:

java.sql.SQLException: Invalid индекс столбца

Когда я отладки, я вижу это на линии:

stm.setString (2, папка);

Я не понимаю, в чем проблема.

ответ

1

Удалить вершину вокруг?

stm = connection.prepareStatement("INSERT INTO DM_PROCMON (DM_ID,t_ID, WORKFLOW, TECHNOLOGY, NAME_EVENT, TIME_EVENT) VALUES(DM_ID.nextval,?, 'up', 'Folder',?, ?)"); 

и повторите попытку.

- это метод setStringPreparedStatement, который обрабатывает вершину вокруг любой строки для вас.

+0

Это работает! Большое спасибо! –