在 Java jdbc oracle 中获取 Exausted ResultSet 错误
Getting Exausted ResultSet Error in Java jdbc oracle
这是jdbc的代码,用eclipse写的。我只是想将查询结果存储到 ResultSet rs 并将其添加到 String name。但是在执行下面的代码时,我遇到了 Exhausted Resultset 错误。
import java.sql.*;
public class DemoClass{
public static void main(String args[]) throws Exception{
String query = "SELECT name FROM Emp WHERE rollno=1";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "Subhro", "Kabiraj");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(query);
rs.next();
String name = rs.getString("name");
System.out.println(name);
st.close();
con.close();
}
}
ERROR:
Exception in thread "main" java.sql.SQLException: Exhausted Resultset
at ojdbc6@11.2.0.4/oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1270)
at ojdbc6@11.2.0.4/oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:498)
at DemoClass.main(DemoClass.java:14)
注意:我的table不是空的。
TABLE 在终端中创建:
SQL> INSERT INTO Emp(rollno, name) values(1, 'abc');
1 row created.
SQL> INSERT INTO Emp(rollno, name) values(2, 'def');
1 row created.
SQL> INSERT INTO Emp(rollno, name) values(3, 'ghi');
1 row created.
SQL> select * from Emp
2 ;
ROLLNO
----------
NAME
--------------------------------------------------------------------------------
1
abc
2
def
3
ghi
SQL> SELECT name FROM Emp WHERE rollno=1;
NAME
--------------------------------------------------------------------------------
abc
关于如何消除此错误的任何建议。
UnCOMMIT
ted 数据仅在创建它的会话中可见(如果尚未 COMMIT
ted,则将在会话结束时 ROLLBACK
可见)。如果您看不到数据,请确保您在 SQL 客户端中发出了 COMMIT
命令。
如果您发出了 COMMIT
但仍然看不到数据,请确保 SQL 客户端和 JDBC 程序都连接到同一个数据库并且正在查询该数据库的同一用户架构。
这是jdbc的代码,用eclipse写的。我只是想将查询结果存储到 ResultSet rs 并将其添加到 String name。但是在执行下面的代码时,我遇到了 Exhausted Resultset 错误。
import java.sql.*;
public class DemoClass{
public static void main(String args[]) throws Exception{
String query = "SELECT name FROM Emp WHERE rollno=1";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "Subhro", "Kabiraj");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(query);
rs.next();
String name = rs.getString("name");
System.out.println(name);
st.close();
con.close();
}
}
ERROR:
Exception in thread "main" java.sql.SQLException: Exhausted Resultset
at ojdbc6@11.2.0.4/oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1270)
at ojdbc6@11.2.0.4/oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:498)
at DemoClass.main(DemoClass.java:14)
注意:我的table不是空的。
TABLE 在终端中创建:
SQL> INSERT INTO Emp(rollno, name) values(1, 'abc');
1 row created.
SQL> INSERT INTO Emp(rollno, name) values(2, 'def');
1 row created.
SQL> INSERT INTO Emp(rollno, name) values(3, 'ghi');
1 row created.
SQL> select * from Emp
2 ;
ROLLNO
----------
NAME
--------------------------------------------------------------------------------
1
abc
2
def
3
ghi
SQL> SELECT name FROM Emp WHERE rollno=1;
NAME
--------------------------------------------------------------------------------
abc
关于如何消除此错误的任何建议。
UnCOMMIT
ted 数据仅在创建它的会话中可见(如果尚未 COMMIT
ted,则将在会话结束时 ROLLBACK
可见)。如果您看不到数据,请确保您在 SQL 客户端中发出了 COMMIT
命令。
如果您发出了 COMMIT
但仍然看不到数据,请确保 SQL 客户端和 JDBC 程序都连接到同一个数据库并且正在查询该数据库的同一用户架构。