Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Code Block
    languagecpp
     
    /* 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.9ERR-4103CRequest of fetching data to an unprepared SQL statement. 
Altibase 5.3.3 ~ 6.1.1100Not found datahttp://aid.altibase.com/x/7YKZ
Altibase 6.3.1 이상ERR-410D2Fetch out of sequence.

...