代码之家  ›  专栏  ›  技术社区  ›  Peter Booster

abap中的字符串类型与字符

  •  2
  • Peter Booster  · 技术社区  · 14 年前

    abap中字符串类型的缺点是什么?什么时候用,什么时候不用?

    例如:我有一个文本字段,它应该保存0到12个字符的值,最好使用字符串或字符(12)?

    谢谢!

    5 回复  |  直到 14 年前
        1
  •  7
  •   BenV Langley    14 年前

    字符串存储为动态字符数组,而字符是静态分配的。

    字符串的一些缺点包括:

    • 开销-因为它们是动态的,所以除了实际的字符串之外,还必须存储长度。
    • substring和offset操作符不能处理字符串。

    因此,要回答您的问题,字符串应该只用于长度范围很广的相当长的值,其中额外的开销相对于静态文件的潜在浪费空间可以忽略不计 char(x) 变量。

        2
  •  2
  •   Thato Aphane    12 年前

    我认为CHAR是最好的,因为您100%确定字段只能容纳0-12个字符。

        3
  •  1
  •   TheDean    11 年前

    string是可变长度的数据类型,而char中必须定义长度。。 对于类型C(文本字段(字母数字字符))和字符串X或十六进制字符串具有初始值(X'0')。

        4
  •  0
  •   Ishan Jain    11 年前

    字符串变量: 字符串是一种可变长度的数据类型,用于存储任意长度的数据。使用可变长度字段是因为它们节省空间。

    但在您的例子中,您已经知道字段的最大长度(0-12个字符),所以 CHAR type 最适合你的情况。A STRING 通常用于可变长度数据或长值的类型。

    Read more

        5
  •  0
  •   Marius    7 年前

    • 文本长度将是可变的。
    • 你需要经常得到绳子的长度。它比CHAR字段更理想。

    字符字段很好:

    • 如果它们很小,则速度很快(在unicode系统中少于大约32个字符)
    • 使用(')引号而不是(`)的字符字段文字可以生成可翻译文本。

    要记住的东西:

    • 所有变量都有元数据,但字符串也有一些指向字符串数据的内部指针,这可能会增加多达64个字节的内存消耗。要记住的东西。
    • 'test' 对于CHAR和 test 对于字符串。这通常会稍微快一点。
    推荐文章