SAP HANA CLOUD

[SAP RAP] 데이터 타입 정리 (도메인,변수,키)

선짱 2025. 12. 17. 09:29
반응형

 

 

 

도메인은 데이터가 담길 그릇이라고 생각하면 쉽습니다. 
여기서 이제 숫자만 들어갈지 문자만 들어갈지 아니면 날짜나 금액이 들어갈지 설정해줍니다.

그거에 이름표, 설명서 설정을 붙히면 data element 가 되고요. 
이걸 이제 테이블이나 변수 선언에 갖다 씁니다. 
이러면 데이터 일관성을 유지할 수 있으며 
이렇게 한번 정의해두면 여러곳에서 재사용할 수 있습니다. 

 

 

이런 데이터 타입을 볼 수있는 화면이 있습니다. 
se11 티코드를 보시면 됩니다. 
데이터 타입에 내가 궁금한 matnr 을 치고 조회를 해보면 
타입과 길이를 볼 수 있습니다. 
f2를 누르면 더 자세하게 나오는데 이 쪽에 벨류 레인지도 설정하실 수 있습니다. 
이건 도메인이 가질 수 있는 값을 지정해줍니다. 


만약 matnr 은 abc 값만 받을 수 있어 ! 라고 설정을 해두면 어떤 값을 넣을지 모르는 사용자에게 여러모로 편리함을 주죠 

 

 

이 타입들은 프로그램 안에서 직접 사용은 불가하며
 테이블이나 structure 필드 정의에 사용이 가능합니다. 

아까 말씀드렸던 도메인을 선언해서 변수를 만들 수도 있습니다. 
타입이 케릭터이고 5자리만 받을 수있는 변수 선언 방식입니다.

 

 

이 선언이 인라인 선언이라고 뉴 싱텍스입니다.
이제 위에다가 선언하는 대신 이 변수가 사용되는 구문에서 
바로 선언하고 값을 할당 받을 수 있게 만들어논겁니다. 

이 부분은 구조체에 대한 선언인데요
보시다 시피 ty_data에 여러 필드가 나열되어 있는데요
이 필드의 구조체를 가진 데이터의 선언을 할 수 있습니다. 

DATA: lv_carrid LIKE gt_sflight-carrid.
테이블 gt_sflight의 아이디 필드의 동일한 타입으로 변수 선언한 경우입니다. 

 

 

테이블 선언은 TYPE TABLE OF를 사용해서 선언해줍니다. 
예시를 보면 SFLIGHT 테이블을 가져와서 
이 테이블 구조를 가진 행들을 여러개 저장할 수 있게 도와줍니다. 

이걸 인터널 테이블이라고 하는데 디비 저장 전 임시로 저장되게 해주는 테이블입니다. 

TY_SFLIGHT의 행 구조와 동일한 구조를 가진 단일 레코드 GS_SFLIGHT를 선언
해주는 선언 방식입니다. 

TY S플라이트의 한 행만 가져와서 GS_S플라이트에 넣어지게 됩니다. 

LT 플라이트에서 AA 와 0017인 데이터를 찾아서 그 라인을 변수에 넣어주게됩니다. 

 

이제 스탠다드 테이블이라고 선언할 수가 있는데 이건 저희가 항상 만드는 가장 일반적인 테이블입니다. 인덱스로 테이터 접근이 가능합니다.

소트 테이블은 데이터가 항상 정렬된 상태로 유지되어야하는 경우 
검색 및 정렬이 빈번한 작업에서 활용가능.
키값을 기준으로 정렬된 상태로 저장함

해쉬드 테이블은 대량 데이터에서 고속 검색이 필수적일때 활용.
중복 데이터가 허용되지 않으며 고유한 키가 존재해야함

 

원래 키를 설정하면 데이터를 빠르게 찾아올 수 있잖아요
WITH EMPTY KEY 를 사용하면 키가 없는 인터널 테이블을 만들 수 있습니다. 
주로 데이터의 순서만 중요하거나 루프로 한번만 돌아서 가져올때 사용합니다. 

WITH DEFAULT KEY는 시스템이 자동으로 키를 지정하도록 하는 구문입니다. 
개발자가 키 설정을 안해도 런타임 환경이 구조체를 기반으로 키를 구성합니다.

WITH NON-UNIQUE KEY. 를 사용하면 같은 값을 가진 행이 여러개 존재가 가능합니다. 
만약 WITH UNIQE 키를 사용하게 되면 같은 키 값을 가진 행은 하나만 존재하게 됩니다.

 

반응형