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 로 삭제하는것이 아닌 삭제할 조건에 맞는
데이터를 조회하여 통채로 삭제)