插入抛出无效的列索引
insert throws invalid column index
我有一个具有以下方案的 oracle 数据库:
- DM_ID,自动编号PK
- t_ID, varchar
- 工作流,varchar
- 技术,varchar
- Name_event, varchar
- Time_event、日期
我使用以下方法在数据库中进行一些插入。
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 column index
当我调试的时候,我看到它在线:
stm.setString(2, folder);
我不明白是什么问题。
移除 ?
周围的顶点
stm = connection.prepareStatement("INSERT INTO DM_PROCMON (DM_ID,t_ID, WORKFLOW, TECHNOLOGY, NAME_EVENT, TIME_EVENT) VALUES(DM_ID.nextval,?, 'up', 'Folder',?, ?)");
然后重试。
是 PreparedStatement
的方法 setString
可以为您处理任何字符串的顶点。
我有一个具有以下方案的 oracle 数据库:
- DM_ID,自动编号PK
- t_ID, varchar
- 工作流,varchar
- 技术,varchar
- Name_event, varchar
- Time_event、日期
我使用以下方法在数据库中进行一些插入。
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 column index
当我调试的时候,我看到它在线:
stm.setString(2, folder);
我不明白是什么问题。
移除 ?
周围的顶点stm = connection.prepareStatement("INSERT INTO DM_PROCMON (DM_ID,t_ID, WORKFLOW, TECHNOLOGY, NAME_EVENT, TIME_EVENT) VALUES(DM_ID.nextval,?, 'up', 'Folder',?, ?)");
然后重试。
是 PreparedStatement
的方法 setString
可以为您处理任何字符串的顶点。