쌓고 쌓다

[ABAP] 로컬 변수를 선언하지 않고 레코드의 존재 유무 확인하는 방법 본문

SAP/ABAP

[ABAP] 로컬 변수를 선언하지 않고 레코드의 존재 유무 확인하는 방법

승민아 2025. 6. 3. 16:44
반응형

유일한 키 값으로 데이터베이스에 레코드가 존재하는지 안하는지 유무를

변수를 선언하지 않고 확인하는 방법을 연구한 결과를 소개드리고자 합니다.

 

 

계정과목을 생성하는 로직을 작성중인데

 

무언가 로컬 변수를 선언하고 값의 존재 유무를 확인하는 과정을 생략하면 좋겠다 생각이 들어

이것저것 연구하다 방법을 찾아냈습니다..

 

아래는 기존의 방법입니다.

키 값인 계정과목코드로 존재 유무를 담을 변수를 통해 확인하는 방법입니다.

 

 

키 값으로 DB에 조회후 조회된 레코드의 결과를 INTO절에 작성하여

변수에 담아 이 값이 INITIAL인지 아닌지에 따라 존재 유무를 구별할 수 있었습니다.

 

이 과정을 다음과 같이 변수를 사용하지 않고 확인이 가능합니다.

 

조건절에 키 값을 넣고

SELECT 절에 COUNT ( * ) 를 통해 결과를 확인할 수 있습니다.

 

다음은 디버깅으로 확인한 결과입니다.

 

 

키 값으로 COUNT( * ) 쿼리를 실행했을때

값이 존재한다면(한건이라도)

SY-SUBRC에 정상적인 실행을 의미하는 0 값이 들어옵니다.

 

만약 키 값으로 COUNT( * ) 쿼리를 실행했을때

값이 하나도 존재하지 않는다면

SY-SUBRC에 실패를 의미하는 4 값이 들어가게 됩니다.

 

즉, SY-SUBRC로

0이라면 값이 이미 존재하는거고

0이 아니라면 값이 존재하지 않음을 알 수 있습니다.

반응형