[SQL] java.sql.SQLException의 : 지친 결과 집합
SQLjava.sql.SQLException의 : 지친 결과 집합
Oracle 데이터베이스에 대해 쿼리를 실행하는 데 소모 된 ResultSet : 나는 오류 java.sql.SQLException의를 얻을. 연결은 웹 스피어에 정의 된 연결 풀을 통해입니다. 다음과 같이 실행 된 코드는 다음과 같습니다
if (rs! = null) (
while (rs.next ()) (
count = rs.getInt (1);
)
)
나는 결과 집합에 데이터가 포함되어 있습니다 (rs.next ())
감사
해결법
-
==============================
1.결과 집합을 처리 한 후 열 값에 액세스하는 동안이 오류를 본 적이있다.
결과 집합을 처리 한 후 열 값에 액세스하는 동안이 오류를 본 적이있다.
if (rs != null) { while (rs.next()) { count = rs.getInt(1); } count = rs.getInt(1); //this will throw Exhausted resultset }
이 당신을 도울 것입니다 희망 :)
-
==============================
2.이 시도:
이 시도:
if (rs != null && rs.first()) { do { count = rs.getInt(1); } while (rs.next()); }
-
==============================
3.당신이 rs.absolute (1)을 사용하여, 가기 결과 세트를 재설정하면 당신은 비우면 결과 집합을받지 않습니다.
당신이 rs.absolute (1)을 사용하여, 가기 결과 세트를 재설정하면 당신은 비우면 결과 집합을받지 않습니다.
while (rs.next) { System.out.println(rs.getString(1)); } rs.absolute(1); System.out.println(rs.getString(1));
당신은 또한 같은 않는 대신 rs.absolute (1)의 () rs.first 사용할 수 있습니다.
-
==============================
4.특정 조건에 대해 데이터베이스에서 반환 된 레코드가없는 경우 나는 rs.getString (1)에 액세스하려고 할 때; 이 오류 "소진 결과 집합"을 얻었다.
특정 조건에 대해 데이터베이스에서 반환 된 레코드가없는 경우 나는 rs.getString (1)에 액세스하려고 할 때; 이 오류 "소진 결과 집합"을 얻었다.
문제 전에, 내 코드했다 :
rs.next(); sNr= rs.getString(1);
수정 후 :
while (rs.next()) { sNr = rs.getString(1); }
-
==============================
5.결과 집합 while 루프 사용한 외부 인 경우 예외가 발생한다. While 루프 내부의 ResultSet 관련된 모든 처리를 보관하십시오.
결과 집합 while 루프 사용한 외부 인 경우 예외가 발생한다. While 루프 내부의 ResultSet 관련된 모든 처리를 보관하십시오.
-
==============================
6.STMT 다른 결과 집합 butexpecting 재사용 될 때 일반적으로 발생, 새로운 STMT과하는 executeQuery를 creting보십시오. 그것은 나를 위해 그것을 고정!
STMT 다른 결과 집합 butexpecting 재사용 될 때 일반적으로 발생, 새로운 STMT과하는 executeQuery를 creting보십시오. 그것은 나를 위해 그것을 고정!
-
==============================
7.res.getInt (1) null이 아닌 것을 쉬르를 확인하시기 바랍니다. 이 널 (NULL)이 될 수 있으면 사용 정수 = null을 계산; 되지 INT 카운트 = 0;
res.getInt (1) null이 아닌 것을 쉬르를 확인하시기 바랍니다. 이 널 (NULL)이 될 수 있으면 사용 정수 = null을 계산; 되지 INT 카운트 = 0;
Integer count = null; if (rs! = null) ( while (rs.next ()) ( count = rs.getInt (1); ) )
-
==============================
8.오류 뒤에 문제 : 트랜잭션이 성공하고 테이블에 데이터를 삽입 한 후 사용자가 쿼리를 저지 해고해야하는 거래를 완료 할 때까지 액세스 Oracle 데이터베이스에 시도하는 경우에 당신이 할 수없는 것입니다 액세스 데이터를 삽입했다. 오라클 데이터베이스는 자동에 아니기 때문에 기본적으로 모드를 커밋합니다.
오류 뒤에 문제 : 트랜잭션이 성공하고 테이블에 데이터를 삽입 한 후 사용자가 쿼리를 저지 해고해야하는 거래를 완료 할 때까지 액세스 Oracle 데이터베이스에 시도하는 경우에 당신이 할 수없는 것입니다 액세스 데이터를 삽입했다. 오라클 데이터베이스는 자동에 아니기 때문에 기본적으로 모드를 커밋합니다.
해결책:
SQL PLUS로 이동하여 다음 쿼리를 수행 ..
SQL*Plus: Release 11.2.0.1.0 Production on Tue Nov 28 15:29:43 2017 Copyright (c) 1982, 2010, Oracle. All rights reserved. Enter user-name: scott Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> desc empdetails; Name Null? Type ----------------------------------------- -------- ---------------------------- ENO NUMBER(38) ENAME VARCHAR2(20) SAL FLOAT(126) SQL> insert into empdetails values(1010,'John',45000.00); 1 row created. SQL> commit; Commit complete.
-
==============================
9.당신이 resultSet.next () 메소드 전에 결과 집합을 사용하고 있기 때문에이 오류를 얻고있다.
당신이 resultSet.next () 메소드 전에 결과 집합을 사용하고 있기 때문에이 오류를 얻고있다.
의인이 사용 카운트를 얻으려면 :
반면 (rs.next ()) `{ 카운트 = rs.getInt (1); }
당신은 당신의 결과를 얻을 것이다.
from https://stackoverflow.com/questions/3502005/java-sql-sqlexception-exhausted-resultset by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 값의 그룹 별 사용자 정의 SERIAL / 자동 증가 (0) | 2020.03.30 |
---|---|
[SQL] PostgreSQL의 선택 쿼리의 열 최대 번호는 무엇입니까 (0) | 2020.03.30 |
[SQL] 어떻게 두 개의 서로 다른 날짜에서 년의 차이를 얻으려면? (0) | 2020.03.30 |
[SQL] SQL : 결과 행을 여러 번, 그리고 수 행을 반복 (0) | 2020.03.30 |
[SQL] SQL에서 곱셈 집계 연산자 (1) | 2020.03.30 |