ABAP 資料型態 (ABAP Data Types)
下圖顯示ABAP中所使用的不同資料型態,資料型態可分為Elementary
、Reference
以及Complex
型態。
Elementary Types
Elementary types是最基本不可分割的型態單元,可分為固定長度(fixed length)和可變長度(variable length)。
固定長度(Fixed-Length) Elementary Types
ABAP中有8種固定長度的預定義型態:
4種Character類型:
- Character (C), Numeric character (N), Date (D), and Time (T)
1種hexadecimal類型:
- Byte field (X)
3種numeric類型:
- Integer (I), Floating-point number (F) and Packed number (P)
Category Type Description Initial Value Length Character C Character Space 1 - 65535 Character N Numeric character ‘0’ 4 bytes Character D Date (FORMAT: YYYYMMDD) ‘00000000’ 8 Character T Time (FORMAT: HHMMSS) ‘000000’ 1 - 16 bytes Numeric P Packed number 0 1 - 65535 Numeric I Integer 0 8 bytes Numeric F Floating Point number 0.0 characters Hexadecimal X Hexadecimal X’00’ 6 characters
可變長度(Variable-Length) Elementary Types
ABAP中有2種長度可變的預定義型態:
- Character strings (STRING)
- Byte strings (XSTRING)
Reference Types
Reference Types在ABAP中是指定包含對其他物件的參考/指向資料的物件。這些物件沒有預先定義的參考,因此在程式中必須進行定義。
簡單來說,Reference Types是用於指向其他物件的一個類型。在ABAP中,Reference Types通常用於傳遞複雜的資料結構,例如結構、內部表等。使用Reference Types可以避免將複雜的資料結構作為參數進行傳遞,從而簡化代碼並提高效率。
Complex Types
Complex Types是由其他型態所組成。Complex Types允許我們在一個名稱下管理和處理概念相關的資料。Complex Types可以作為一個整體或單個元件個別地進行處理。
Structures
Structure用於對邏輯上屬於在一起的元素進行組合,元素(element)可以是任何elementary types、reference types或complex types。
Structures根據其定義,可分類為4種型態,分別是:
Table Type | Description |
---|---|
Non-nested | 只包含固定/可變長度(fixed/variable length)的elementary資料型態 |
Nested | 包含一個或多個structure |
Flat | 只包含固定長度(fixed length)的elementary 資料型態(無internal tables、reference types或是string) |
Deep | 任何包含internal tables、reference types或是string元素的structure都是deep structure |
Internal Tables
Internal Tables與Structures基本上很類似,它同樣是程式中被臨時創建的一個儲存空間,是一個可包含多行資料的資料表。
Internal Table有3種類型:
Standard: 當主要使用索引存取Internal table時,應選擇此類型。
sorted: 若主要使用Key值存取Internal table或希望能自動按照Key值排序,則應選擇此類型。
Hashed:若Internal table非常大並且您只想通過Key值存取,則應該選擇此類型。
Type | Index Access | Key Access | Uniqueness of Key |
---|---|---|---|
Standard | ✔ | ✔ | NON-UNIQUE KEY |
Sorted | ✔ | ✔ | UNIQUE KEY |
Hashed | ✔ | UNIQUE KEY |