[SQL] SQLSTATE 24000 - 잘못된 커서 상태
SQLSQLSTATE 24000 - 잘못된 커서 상태
나는 DB2 데이터베이스에 연결하고 다음 쿼리를 만듭니다. "유효하지 않은 커서 상태"나는 오류가 난 왜 이해가 안 돼요.
public static void blivPar() {
try {
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
stmt.setMaxRows(1000);
ResultSet drenge = stmt.executeQuery("SELECT * FROM People WHERE sex='M'");
ResultSet piger = stmt.executeQuery("SELECT * FROM People WHERE sex='F'");
drenge.first();
piger.first();
int i=0;
while(drenge.next()) {
while(piger.next()) {
i++;
System.out.print(i);
stmt.execute("INSERT INTO Couples Values ('"+drenge.getString(1) +
"','" + drenge.getString(2) +
"','" + piger.getString(1) +
"','" + piger.getString(2) + "')");
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
감사합니다.
해결법
-
==============================
1."정적 SQL 문을 실행 해, 작성된 결과를 돌려주기 위해서 (때문에) 사용 목적 : 한 Statement 인터페이스의 JDBC Javadoc과에 발견.
"정적 SQL 문을 실행 해, 작성된 결과를 돌려주기 위해서 (때문에) 사용 목적 : 한 Statement 인터페이스의 JDBC Javadoc과에 발견.
기본적으로, Statement 객체 당 하나의 ResultSet 객체가 동시에 오픈 할 수 있습니다. 하나 ResultSet 오브젝트의 판독은 서로의 판독과 인터리빙되는 경우, 각각은 다른 Statement 객체가 생성 한한다. 암시 적으로 가까운 Statement 인터페이스의 모든 실행 방법 한 Statment의 현재의 ResultSet 객체로 오픈되고있는 것이 존재하면,. " 문의 javadoc를 참조
당신이 동시에 열이 개 결과 집합하려는 경우 두 개의 서로 다른 문을 필요로처럼 나에게 보인다 그래서. 또는 당신은 당신이 두 번째의 ResultSet을 생성하기 위해 문을 다시 사용할 수 있도록 첫 번째 ResultSet의 처리를 완료하고 닫습니다 필요가있다.
from https://stackoverflow.com/questions/3727907/sqlstate-24000-invalid-cursor-state by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 트리거 생성 오류 : 유효하지 않은 구문을 (0) | 2020.07.18 |
---|---|
[SQL] VBA를 사용하여 Excel 통합 문서에서 쿼리를 삭제 (0) | 2020.07.18 |
[SQL] 역할을 설정할 때 SQLAlchemy의 변경 내용을 커밋하지 (0) | 2020.07.17 |
[SQL] 순서 및 트리거와 오라클 자동 증가가 제대로 작동하지 않습니다 (0) | 2020.07.17 |
[SQL] OVER SUM ()를 사용하여 SQL 서버 2008 (ORDER BY ...) (0) | 2020.07.17 |