java - 通过 java 执行 SQL 查询时出现“java.sql.SQLException: Invalid column index”错误
问题描述
谁能建议我在这里做错了什么,试图在控制台中打印 SQL 查询输出,但得到错误为“java.sql.SQLException: Invalid column index”。
import java.io.*;
import java.sql.*;
public class RetrieveFile {
public static void main(String args[]) throws Exception {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@123.43.23.43:8080/orcl", "Test", "*****");
PreparedStatement ps = con.prepareStatement("select * from MSG where MSD='1234'");
ResultSet rs = ps.executeQuery();
// rs.next();//now on 1st row
while (rs.next()) {
int numberOfColumns = 0;
for (int column = 1; column >= numberOfColumns; column++) {
if (column > 1)
System.out.print(", ");
System.out.print(rs.getString(column));
}
}
con.close();
// System.out.println("success" + (rs.getString(1)));
} catch (Exception e) {
e.printStackTrace();
}
}
}
我得到了部分响应,但最终得到以下错误。
错误:
null, 1234, 389, OUR, NOW, USD, 0, 0, FR1, wert, USD, 0, null, 0, 0, null, DR, null, null, 0, 0, null, null, null, null,空,空,空,空,空,0,2,2019-06-11 00:00:00.0,空,空,空,空,空,空,空,java.sql.SQLException:oracle 的列索引无效.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) 在 oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) 在 oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) 在oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:379) 在 RetrieveFile.main(RetrieveFile.java:20) 拿起 JAVA_TOOL_OPTIONS: -Duser.home=C:\Users\45060849
请在输出中包含 MSG 的表结构提前谢谢。
解决方案
这java.sql.SQLException: Invalid column index
意味着具有您尝试访问的索引的列不存在。
变量numberOfColumns
总是小于column
变量,因此您试图从索引大于列数的列中获取值。
推荐阅读
- java - JTextPane 动态缩进!!!情况
- xamarin - Android 上的 Xamarin Forms 语言问题
- python - 序列化程序中的 Django Rest 框架计算?
- oracle - Oracle Apex - 如何在将记录保存在 apex db 中时向外部服务触发 POST 请求
- java - 使用 Powermock 时出现 NoClassDefFoundError
- laravel - 如何从供应商文件(Vue/Laravel Mix/Web pack)中拆分出一个供应商库?
- c# - 嵌套 for 循环,用于一次向所有月份、区域和部门插入新值的 SQL
- r - 如何在循环中选择和引用不同的数据集?
- python - GTFS - 查找一天的所有行程
- ios - Cordova IOS 不使用 NSMotionUsageDescription 值