SAP ABAP - 数据类型



在 ABAP 编程中,我们需要使用各种变量来存储各种信息。变量只不过是保留的内存位置,用于存储值。这意味着当您创建变量时,您会在内存中保留一些空间。您可能希望存储各种数据类型的信息,例如字符、整数、浮点数等。根据变量的数据类型,操作系统分配内存并决定可以在保留的内存中存储什么。

基本数据类型

ABAP 为程序员提供了丰富的固定长度和可变长度数据类型。下表列出了 ABAP 基本数据类型:

类型 关键字
字节字段 X
文本字段 C
整数 I
浮点数 F
打包数字 P
文本字符串 STRING

可以使用一个或多个名称修改某些字段和数字,如下所示:

  • 字节
  • 数值
  • 字符型

下表显示了数据类型、在内存中存储值所需的内存大小以及可以存储在此类变量中的最小值和最大值。

类型 典型长度 典型范围
X 1 字节 任何字节值 (00 到 FF)
C 1 个字符 1 到 65535
N(数值文本字段) 1 个字符 1 到 65535
D(字符型日期) 8 个字符 8 个字符
T(字符型时间) 6 个字符 6 个字符
I 4 字节 -2147483648 到 2147483647
F 8 字节 2.2250738585072014E-308 到 1.7976931348623157E+308 正数或负数
P 8 字节 [-10^(2len -1) +1] 到 [+10^(2len -1) 1] (其中 len = 固定长度)
STRING 可变 任何字母数字字符
XSTRING(字节字符串) 可变 任何字节值 (00 到 FF)

示例

REPORT YR_SEP_12. 
DATA text_line TYPE C LENGTH 40. 
text_line = 'A Chapter on Data Types'. 
Write text_line. 

DATA text_string TYPE STRING. 
text_string = 'A Program in ABAP'. 
Write / text_string. 

DATA d_date TYPE D. 
d_date = SY-DATUM. 
Write / d_date.

在此示例中,我们有一个类型为 C 的字符字符串,其预定义长度为 40。STRING 是一种可用于任何可变长度字符字符串(文本字符串)的数据类型。对于固定长度不重要的字符型内容,通常应使用 STRING 类型的数据对象。

上述代码产生以下输出:

A Chapter on Data Types 
A Program in ABAP 
12092015 

DATE 类型用于存储日期信息,可以存储八位数字,如上所示。

复杂类型和引用类型

复杂类型分为结构类型表类型。在结构类型中,基本类型和结构(即嵌入在结构中的结构)组合在一起。您可以只考虑基本类型的组合。但是您必须意识到结构嵌套的可用性。

当基本类型组合在一起时,可以访问数据项作为分组数据项,或者可以访问各个基本类型数据项(结构字段)。表类型在其他编程语言中更广为人知的是数组。数组可以是简单的数组或结构数组。在 ABAP 中,数组称为内部表,与其他编程语言相比,它们可以以多种方式声明和操作。下表显示了根据其特性来区分内部表的参数。

序号 参数和说明
1

行类型

内部表的一行可以是基本类型、复杂类型或引用类型。

2

指定字段或字段组作为内部表的键,用于标识表行。键包含基本类型的字段。

3

访问方法

描述 ABAP 程序如何访问各个表条目。

引用类型用于引用类、接口和运行时数据项的实例。ABAP 面向对象运行时类型服务 (RTTS) 支持在运行时声明数据项。

广告