...
Code Block language cpp /* LIMIT 절을 사용하여 커서를 선언한다. n은 LIMIT절에서 반환할 마지막 레코드 값으로 운영 환경에 맞게 정의해야 한다. 통신 버퍼에 담기는 레코드 수는 레코드 크기에 따라 다르다. */ DECLARE 커서 SELECT ~ FROM ~ WHERE ~ LIMIT :s_start, n; /* LIMIT 절에 사용한 시작 값을 선언한다. */ s_start = 1; while(1) { /* 조건에 맞는 레코드를 모두 FETCH할 때까지 커서 오픈을 반복한다. */ OPEN 커서 while(1) { 커서(CURSOR) FETCH ; if (sqlca.sqlcode == SQL_SUCCESS) { /* 변경 DML 수행 */ } else if (sqlca.sqlcode == SQL_NO_DATA) { ... } else { ... } } /* COMMIT 또는 ROLLBACK 수행 */ /* LIMIT 절의 시작 값을 지정한다. n은 예시이다. */ s_start = s_start + n ; } CLOSE 커서 또는 CLOSE RELEASE 커서
참고
유사 사례
...
버전 별 차이
...
Altibase 버전에 따라 같은 상황에서 발생하는 에러 메시지는 다를 수 있다.
Non-autocommit 환경에서 FETCH 중 COMMIT/ROLLBACK 수행할 경우 발생하는 에러 메시지 차이는 아래와 같다.
버전 | 에러코드 | 에러메시지 | 참고 페이지 |
---|---|---|---|
Altibase 4.3.9 | ERR-4103C | Request of fetching data to an unprepared SQL statement. | |
Altibase 5.3.3 ~ 6.1.1 | 100 | Not found data | http://aid.altibase.com/x/7YKZ |
Altibase 6.3.1 이상 | ERR-410D2 | Fetch out of sequence. |
...