기본 데이터 타입으로, 시스템에 내장되어 있는 간단한 데이터 형태이다. 예: 정수, 실수, 문자
문자형(Character Type)
C (Character): 고정 길이 문자열
DATA: lv_char TYPE c LENGTH 10.
숫자형(Numeric Type)
I (Integer): 정수형 데이터 타입
DATA: lv_int TYPE i.
F (Floating Point): 부동 소수점 데이터 타입
DATA: lv_float TYPE f.
P (Packed Number): 고정 소수점 데이터 타입
DATA: lv_packed TYPE p LENGTH 5 DECIMALS 2.
날짜/시간형(Date/Time Type)
D (Date): 날짜 타입 (YYYYMMDD 형식)
DATA: lv_date TYPE d.
T (Time): 시간 타입 (HHMMSS 형식)
DATA: lv_time TYPE t.
논리형(Boolean Type)
X (Hexadecimal): 헥사데시멀 타입
DATA: lv_hex TYPE x LENGTH 2.
기본 타입을 기반으로 한 복잡한 데이터 형태이다. 예: 배열, 구조체, 클래스
TYPES: BEGIN OF ty_struct,
field1 TYPE c LENGTH 10,
field2 TYPE i,
END OF ty_struct.
DATA: ls_struct TYPE ty_struct.
프로그래머가 직접 정의한 데이터 타입으로, 특정 요구 사항을 충족하기 위해 사용된다. 예: ABAP Dictionary에서 정의한 타입, 프로그램 내에서 정의한 로컬 타입
TYPES 문을 사용한 정의
단순 타입 정의
TYPES: ty_char10 TYPE c LENGTH 10,
ty_num3 TYPE n LENGTH 3.
구조체 정의
TYPES: BEGIN OF ty_person,
name TYPE c LENGTH 20,
age TYPE i,
END OF ty_person.
테이블 타입 정의
TYPES: ty_person_table TYPE TABLE OF ty_person.
Local Data Type, Global Data Type, Standard Data Type은 데이터 타입의 정의 위치와 범위에 따른 분류이며, 기본 타입, 파생 타입, 사용자 정의 타입은 데이터 타입의 형태와 구조에 따른 분류이다. 각 분류 방식은 서로 다른 관점을 제공하지만, 모두 데이터 타입을 적절하게 정의하고 사용하는 데 중요한 역할을 한다는 것을 기억하자.