获取java.sql.SQLException:插入表时无效的列索引

时间:2011-02-22 07:40:35

标签: jdbc prepared-statement

我一直在使用一段代码,其中java.sql.SQLException: Invalid column indexruntime抛出。

我曾经多次使用此异常工作,每次我发现开发人员在使用rs.getsString()方法时使用了错误的索引。

但这次我的问题是我在将记录插入表格时遇到此异常。任何人都可以建议我在插入数据库时​​获得此异常的原因是什么?

此外,我无法在异常时看到正在执行的查询,因为当我尝试使用prepareStmt.toString()时,正在使用的驱动程序(oracle驱动程序)不会打印查询。此方法改为打印对象引用。

请帮忙。任何帮助都非常感谢。

最诚挚的问候 Anubhav Jain!

2 个答案:

答案 0 :(得分:2)

我猜测问题是你将setXXXX用于带有错误索引的预准备语句(例如0或大于SQL语句中'?'的数量)

答案 1 :(得分:1)

我也面临同样的问题。后来我发现在我的查询字符串中,我在符号周围使用了引号,这是不允许的。

例如:
insert into document_table(ID, SOURCE, DESTINATION, STATUS) values('?','Active','Backup' ,'D')

不允许。应该写成:
insert into document_table(ID, SOURCE, DESTINATION, STATUS) values(?,'Active','Backup' ,'D')