我一直在使用一段代码,其中java.sql.SQLException: Invalid column index
被runtime
抛出。
我曾经多次使用此异常工作,每次我发现开发人员在使用rs.getsString()
方法时使用了错误的索引。
但这次我的问题是我在将记录插入表格时遇到此异常。任何人都可以建议我在插入数据库时获得此异常的原因是什么?
此外,我无法在异常时看到正在执行的查询,因为当我尝试使用prepareStmt.toString()
时,正在使用的驱动程序(oracle驱动程序)不会打印查询。此方法改为打印对象引用。
请帮忙。任何帮助都非常感谢。
最诚挚的问候 Anubhav Jain!
答案 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')