Dump

DBSQL_STMNT_TOO_LARGE

moon.7 2021. 7. 23. 15:06

 

 

 

Dump : DBSQL_STMNT_TOO_LARGE

 

 

오늘은 아래 덤프의 원인과 해결방법에 대해서 알아보겠습니다.

 

 

 

<원인>

  해당 덤프의 원인을 분석해보니 RANGES 변수 레코드가 너무 커서  DB를 SELECT, DELETE 할때  덤프가 납니다.

 

<해결방법>

    RANGES 변수 레코드 수의 제한이 몇라인인지는 정확히 모르겠지만,

    대략 1000 라인 정도로 보는것 같습니다. 

 

    그래서 RANGES 사용시 사용 유형에 따라 레코드수가 많을때는

    RANGES 변수가 아닌 다른 구문을 사용했습니다.

 

   - SQL 에서 사용시 : FOR ALL ENTRIES IN 으로 대체

   

   - DELETE 에서 사용시:  DELETE할 RANGE변수의 데이터로 ITAB을 만들어서

                                 FOR ALL ENTRIES IN 로 DB 조회후 삭제

                                 * DELETE  <DB TAB> FROM TABLE  <ITAB>.

                                 (WHERE 로 삭제하는것이 아닌 삭제할 조건에 맞는

                                 데이터를 조회하여 통채로 삭제)