ABAP에서 SPLIT 명령어 사용하기

Ada·2024년 9월 5일

SAP ABAP

목록 보기
4/21

SPLIT 명령어는 여타 다른 프로그래밍 언어에서와 유사하게, 필드의 내용을 특정 구분자를 기준으로 분리하여 여러 필드에 저장할 때 사용한다.

1. 데이터 선언


* 예제를 위한 변수 선언

DATA: mystring TYPE C LENGTH 30,
      a1 TYPE C LENGTH 10,  " 문자열이 분리되어 저장될 변수들
      a2 TYPE C LENGTH 10,
      a3 TYPE C LENGTH 10,
      sep2 TYPE C LENGTH 2 VALUE '**'.

2. 기본적인 문자열 분리

mystring = ' 1234** ABCD **6789'.

WRITE: / 'Original string: ', mystring.

SPLIT mystring AT sep2 INTO a1 a2 a3.

WRITE / a1.
WRITE / a2.
WRITE / a3.

* 결과
` 1234      `
` ABCD      `
`6789J      `

3. 구분자가 추가된 경우

mystring = ' 1234** ABCD **6789J**WXYZ'.

SPLIT mystring AT sep2 INTO a1 a2 a3.

WRITE / a1.
WRITE / a2.
WRITE / a3.


* mystring 은 문자열이 세 개의 필드로 나뉘어지지만, 실제로는 네 개의 구분자를 기준으로 분리가  가능하다. 
* 하지만 필드가 세 개만 선언되어 있기 때문에, 마지막 a3에는 나머지 문자열 6789**XYZ가 모두 저장된다.

* 결과
' 1234     '
' ABCD     '
'6789**WXYZ'

4. 구분자가 없는 경우

만약 SPLIT 명령어를 사용할 때 구분자가 문자열에 포함되지 않으면, 전체 문자열이 첫 번째 필드에 저장되고 나머지 필드에는 공백이 들어간다.

mystring = 'NoSperatorHere'.

SPLIT mystring AT sep2 INTO a1 a2 a3.

* 이 경우 sep2 구분자가 문자열에 없기 때문에 전체 문자열이 a1 에 저장되고,
* a2, a3 는 공백으로 채워진다.

요약

  • SPLIT 명령어는 문자열을 지정한 구분자에 따라 여러 필드로 나누는 데 사용된다.
  • 구분자가 필드의 개수보다 많을 경우, 마지막 필드에 나머지 데이터가 저장된다.
  • 구분자가 문자열에 포함되지 않으면, 전체 문자열이 첫 번째 필드에 저장된다.
  • 필드의 크기가 부족하면 데이터가 잘릴 수 있으므로, 필드의 크기를 적절히 설정해야 한다.
profile
백엔드 프로그래머

0개의 댓글