当您具有“字符串”类型时,为什么ABAP中有这么多“字符”类型?

JD0*_*001 4 sap abap sqldatatypes

在ABAP词典中,您几乎可以找到所有长度的“ CHAR”类型的数据元素,因此问题就来了:当您拥有一个可以承受所有长度的字符串元素时,它们具有什么功能

我说的是那些具有特定长度但具有相同域类型的域。

在这里,我展示其中一些

CHAR0001
CHAR0008
CHAR0010
CHAR0016
CHAR0032
CHAR004
CHAR005
CHAR006
CHAR0064
CHAR007
CHAR01
CHAR011
CHAR012
CHAR0128
CHAR02
CHAR022
CHAR0241
CHAR025
CHAR0256
CHAR03
CHAR04
CHAR05
CHAR060
CHAR07
CHAR08
CHAR101
CHAR102
CHAR1024
...
Run Code Online (Sandbox Code Playgroud)

Jag*_*ger 7

由于许多原因,您有很多。

  1. 字符串类型不能用作数据库(透明)表中的主键。
  2. 当在结构的字段之一中使用字符串类型时,对这种结构类型的变量的某些隐式操作将是不可能的,例如,通过分配给其他固定长度的结构。
  3. 通过在结构类型中使用字符串类型,可以使它不再是平面结构。
  4. 某些数据迁移接口(如直接输入)要求负载结构具有定义的固定长度。

我认为还有更多,但这是我在短时间内可以想到的。

  • 自[ABAP 4.6A](https://help.sap.com/doc/abapdocu_753_index_htm/7.53/zh-CN/index.htm?file=abennews-46-strings.htm)起就存在STRING和RAWSTRING。 DDIC),因此该版本之前除了CHAR和RAW之外没有其他解决方案。 (3认同)