写点什么

SAP | 详解 abap 数据类型

作者:暮春零贰
  • 2022-10-18
    中国香港
  • 本文字数:1214 字

    阅读完需:约 1 分钟

SAP | 详解abap数据类型

数据类型确定 ABAP 语句如何解释数据对象的内容。它不会占用程序中工作数据的任何内存空间,它们的目的只是提供数据对象的技术属性。


数据类型大致可分为三类:基本数据类型、复杂数据类型或引用类型。本文将对基本数据类型进行主要概述。基本数据类型又可以分类为预定义的基本类型或用户自定义的基本类型。


一、预定义的基本数据类型

SAP 系统内置了预定义的基本数据类型。这些数据类型在所有 ABAP 程序中都可见。开发者可以通过引用预定义的数据类型来创建自己的数据类型(用户定义的基本数据类型)。


预定义的基本数据类型可以分类为数值型或非数值型。以下是六种预定义的数值基本数据类型:

当你在程序中使用这些数据类型声明数据对象的时候,不需要指定长度。同时,需要注意一点,字段长度确定数据对象在内存中占用的字节数。


以下是五种预定义的非数值基本数据类型:

  • 文本字段 (c)

  • 数字字符串 (n)

  • 日期 (d)

  • 时间(t)

  • 十六进制 (x)


了解了这些数据类型之后,让我们看看如何利用他们在程序中定义数据对象

例:

DATA name TYPE c.DATA name TYPE c LENGTH 10.
复制代码

这两个数据对象是具有不同的长度,在未指定长度 LENGTH 的情况下,name 只能存储一个字符。

当然了,第二行代码还有另一种写法:

DATA v_name ( 10 ) TYPE c.
复制代码

二、具有可变长度的预定义基本 ABAP 类型

在有些情况下,我们可能在运行的时候,才会知道自己想要的数据长度是多少。这个时候,我们就需要用动态长度字段来解决这个问题了。


ABAP 提供具有可变长度的数据类型:

  • 字符串

是一种长度可变的数据类型

  • xstring

是一种长度可变的十六进制类型


如下,可使数据对象的长度根据存储中的数据动态的变化:

DATA full TYPE string.DATA xfull TYPE xstring.
复制代码

类型转换

如果在不同的数据对象之间移动数据,会根据转换规则,在源字段和目标字段之间自动执行类型转换。

例如,将字符字段分配给整数字段。

DATA f1 TYPE c LENGTH 2 VALUE 23.DATA f2 TYPE i.f2 = f1.
复制代码

将 f1 的值赋给数据对象 f2 时,系统将使用适用的转换规则(从 c 到 i)执行转换,然后再将数据移动到 f2。如果转换成功,则移动数据。如果转换不成功,系统将引发运行时错误。实例会运行成功,因为 23 是有效的整数。

当然了,虽然转换规则会使不同类型之间的数据移动变得更加容易,但是也不要滥用,要确定源字段或目标字段有效,并可以产生预期的结果。

三、用户定义的基本数据类型

在 ABAP 中,你还可以根据预定义的基本数据类型定义自己的基本数据类型。它们将会非常有用!

例:当你要处理很多类型和长度相同的数据时,就会写很多重复的代码,同时如果后续进行维护更改,也会是一个很大的工作量。

DATA : Father_Name TYPE c LENGTH 20,       Mother_Name TYPE c LENGTH 20,       Son_Name TYPE c LENGTH 20.
复制代码

可以尝试以下方法,先定义一个类型,然后将所有符合的数据指向此数据类型即可。

TYPES person TYPE c LENGTH 20.DATA : Father_Name TYPE person,       Mother_Name TYPE person,       Son_Name TYPE person.
复制代码



发布于: 刚刚阅读数: 6
用户头像

暮春零贰

关注

每日羊了个羊🐏,不如今日码了再码 2022-03-13 加入

🏆InfoQ写作平台-从未签约作者 🏆

评论

发布
暂无评论
SAP | 详解abap数据类型_SAP_暮春零贰_InfoQ写作社区