获取 java.sql.SQLException:插入表时列索引无效
Posted
技术标签:
【中文标题】获取 java.sql.SQLException:插入表时列索引无效【英文标题】:Getting java.sql.SQLException: Invalid column index while inserting into table 【发布时间】:2011-02-22 07:40:35 【问题描述】:我一直在处理一段代码,其中java.sql.SQLException: Invalid column index
被抛出runtime
。
我过去曾多次处理过这个异常,每次我发现开发人员在使用rs.getsString()
方法时使用了错误的索引。
但是这次我的问题是我在将记录插入表时遇到了这个异常。谁能建议我在插入数据库时遇到此异常的原因是什么?
此外,我无法在异常时看到正在执行的查询,因为当我尝试使用 prepareStmt.toString()
时,正在使用的驱动程序(oracle 驱动程序)不打印查询。此方法改为打印对象引用。
请帮忙。非常感谢任何帮助。
最好的问候 阿努巴夫耆那教!
【问题讨论】:
【参考方案1】:我猜问题是你对一个索引错误的预准备语句执行 setXXXX(例如 0 或大于 SQL 语句中“?”的数量)
【讨论】:
PreparedStatment 也会发生这种情况。完美解释javarevisited.blogspot.de/2012/01/…【参考方案2】:我也遇到了同样的问题。后来我发现在我的查询字符串中,我在 ? 符号周围使用了 引号,这是不允许的。
例如:insert into document_table(ID, SOURCE, DESTINATION, STATUS) values(<strong>'?'</strong>,'Active','Backup' ,'D')
不允许。应该写成:insert into document_table(ID, SOURCE, DESTINATION, STATUS) values(<strong>?</strong>,'Active','Backup' ,'D')
【讨论】:
以上是关于获取 java.sql.SQLException:插入表时列索引无效的主要内容,如果未能解决你的问题,请参考以下文章
java.sql.SQLException:无法从底层数据库获取连接! — HSQLDB
获取异常 java.sql.SQLException: ORA-03115: 不支持的网络数据类型或表示
获取 java.sql.SQLException:ResultSet 关闭后不允许操作
获取noclassfoundexception:jdk 11的intellij idea中的java.sql.SQLException
Bug解决:获取JDBC连接失败;嵌套异常是java.sql.SQLException:无法从底层数据库获取连接
Spring Batch 无法获取 last_insert_id();嵌套异常是 java.sql.SQLException: Lock wait timeout exceeded;