java 程序无法进入 while 循环以获得唯一行结果集

标签 java jdbc oracle9i

我有一个应包含 1 行的结果集(我已经对此进行了测试)。我的程序没有进入 while(rs2.next()) 循环,我在调试后注意到了这一点。这就是为什么我收到 SQLException :并非所有变量都绑定(bind)。

ResultSet constitues = cnx.createStatement().executeQuery(Request.getConstitues());

            while(constitues.next()){
                PreparedStatement ps = cnx.prepareStatement(Request.setNewConstitue());
                PreparedStatement ps2 = cnx.prepareStatement(Request.getDossierFromNumeroParcelle());

                ps2.setInt(1, constitues.getInt("NUM_ORDRE"));
                ps2.setInt(2, constitues.getInt("NUM_PARCELLE"));

                        //rs2 contains one row
                ResultSet rs2 = ps2.executeQuery();
                        // Program is not entering this loop
                while(rs2.next()){
                   ps.setInt(1, rs2.getInt("NUM_DOSSIER"));
                   ps.setString(2, rs2.getString("INDICE"));
                   ps.setString(3, constitues.getString("OBSERVATIONS"));
                   ps.setInt(4, constitues.getInt("TYPE_CONSISTANCE"));
                }

                ps.executeUpdate();
                rs2.close();
                ps.close();

            }    

Request.getConstitues() 是:

 select * from PARC_CONSTITUES

Request.setNewConstitue() 是:

Insert into CONSTITUE(NUM_DOSSIER,INDICE,Observation,CODE_CONSISTANCE) values(?,?,?,?)

Request.getDossierFromNumeroParcelle() 是:

select NUM_DOSSIER,INDICE from PARC_PARCELLES where num_ordre = ? and num_parcelle= ?

为什么程序没有进入 while 循环?

最佳答案

我怀疑数据库中数据不可用或者无法从数据库检索数据。

但是在进行 while 循环之前无论如何都要检查这个条件

boolean isEmpty = ! rs.first();

并打印isEmpty进行调试。

所以使用这样的东西

if(!isEmpty)
{
 while(rs2.next()){
                   ps.setInt(1, rs2.getInt("NUM_DOSSIER"));
                   ps.setString(2, rs2.getString("INDICE"));
                   ps.setString(3, constitues.getString("OBSERVATIONS"));
                   ps.setInt(4, constitues.getInt("TYPE_CONSISTANCE"));
}
            }

关于java 程序无法进入 while 循环以获得唯一行结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23938276/

相关文章:

oracle - 如何将文本附加到 oracle clob

java - 垂直滚动条未出现

sql - 在SQL中将列转换为行

java - 如何将 MySQL 查询存储到 Java 数组中?

java - sql server Smalldatetime 的 JDBC 编码

java - 如何使用 J Connector 和其他 jar 文件为 Java 程序创建 bat 文件?

java - 如何从滚动数据库中获取数据?

java - 使用笛卡尔积分页

java - 在Java中压缩现有文件的简单方法?

java - iText 验证 java 中 pdf 的完整性