목록2025/02/23 (2)
쌓고 쌓다

서브루틴 구문에 대해서 다음과 같이 배웠었는데.. 위와 같이 USING으로 값을 넘겨주고, CHANGING 부분에서 변경될 값을 명시하는 방식으로 호출한다. PERFORM으로 넘겨진 Actual Parameter가USING VALUE(A) 구문으로 값의 변경이 일어나지 않게 받고CHANGING으로 값의 변경이 이뤄질 수 있게 받는다. 라고 배웠다.. 그런데강사님께서 시험 해설 코드를 작성해주시는데서브루틴 선언의 USING 부분에 왜USING VALUE(PV_COUNTRY) TYPE LAND가 아닌USING PV_COUNTRY TYPE LAND 형태인 것인가...? USING만 사용하면 CHANGING과 동일한 효과를 본다.사실 USING에 VALUE를 명시해줘야지 Call by Value가 동작하는것이였..

FOR ALL ENTRIESFOR ALL ENTRIES IN을 사용하면 Internal table 데이터 가지고 조건식을 작성할 수 있다.예제를 보면서 이해해보자... IF ~ IS NOT INITAL 부분을 보자.FOR ALL ENTRIES IN 구문을 사용하려면Internal Table에 중복된 데이터가 있는지 확인하고 제거해줘야한다. DELETE ADJACENT ~ 구문 이전에 꼭 SORT를 해주어야 중복된 데이터를 정확히 제거해준다. FOR ALL ENTRIES를 사용할때 최소 한건의 데이터가 있어야한다.없으면 FROM절의 데이터를 모두 가져오게 된다. GT_SPFLI에 들어가 조건들은ROW 내에 조건들은 AND로 묶으며ROW 단위의 조건들은 모두 OR 조건으로 묶여서조건절이 동작하게 된다.}